#!/usr/bin/python3
"""Autopkgtest: verify ARFCN utility functions from the installed gr-gsm package."""

import sys
from gnuradio.gsm import arfcn

errors = 0

def check(desc, result, expected):
    global errors
    if result != expected:
        print("FAIL: {} — got {!r}, expected {!r}".format(desc, result, expected))
        errors += 1
    else:
        print("OK: {}".format(desc))

# is_valid_arfcn
check("GSM900 ARFCN 1 is valid", arfcn.is_valid_arfcn(1), True)
check("GSM900 ARFCN 124 is valid", arfcn.is_valid_arfcn(124), True)
check("ARFCN 125 is invalid", arfcn.is_valid_arfcn(125), False)
check("DCS1800 ARFCN 512 is valid", arfcn.is_valid_arfcn(512), True)

# arfcn2downlink
check("ARFCN 1 downlink = 935.2 MHz", arfcn.arfcn2downlink(1), 935.2e6)
check("ARFCN 0 downlink = 935.0 MHz", arfcn.arfcn2downlink(0), 935.0e6)

# downlink2arfcn
check("935.2 MHz downlink = ARFCN 1", arfcn.downlink2arfcn(935.2e6), 1)

if errors:
    print("{} test(s) failed".format(errors))
    sys.exit(1)
else:
    print("All ARFCN tests passed")
