Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 1 | #!/usr/bin/env python |
| 2 | # -*- coding: utf-8 -*- |
| 3 | # @file |
| 4 | # @author Roman Khassraf <rkhassraf@gmail.com> |
| 5 | # @section LICENSE |
| 6 | # |
| 7 | # Gr-gsm is free software; you can redistribute it and/or modify |
| 8 | # it under the terms of the GNU General Public License as published by |
| 9 | # the Free Software Foundation; either version 3, or (at your option) |
| 10 | # any later version. |
| 11 | # |
| 12 | # Gr-gsm is distributed in the hope that it will be useful, |
| 13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 15 | # GNU General Public License for more details. |
| 16 | # |
| 17 | # You should have received a copy of the GNU General Public License |
| 18 | # along with gr-gsm; see the file COPYING. If not, write to |
| 19 | # the Free Software Foundation, Inc., 51 Franklin Street, |
| 20 | # Boston, MA 02110-1301, USA. |
| 21 | # |
| 22 | # |
| 23 | |
| 24 | from gnuradio import gr, gr_unittest, blocks |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 25 | import grgsm_swig as grgsm |
| 26 | import arfcn |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 27 | import os |
| 28 | import sys |
| 29 | |
| 30 | |
| 31 | class qa_arfcn (gr_unittest.TestCase): |
| 32 | |
| 33 | def test_001_is_valid_arfcn(self): |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 34 | self.assertTrue(arfcn.is_valid_arfcn(259, 'GSM450')) |
| 35 | self.assertTrue(arfcn.is_valid_arfcn(277, 'GSM450')) |
| 36 | self.assertTrue(arfcn.is_valid_arfcn(293, 'GSM450')) |
| 37 | self.assertFalse(arfcn.is_valid_arfcn(258, 'GSM450')) |
| 38 | self.assertFalse(arfcn.is_valid_arfcn(294, 'GSM450')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 39 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 40 | self.assertTrue(arfcn.is_valid_arfcn(306, 'GSM480')) |
| 41 | self.assertTrue(arfcn.is_valid_arfcn(323, 'GSM480')) |
| 42 | self.assertTrue(arfcn.is_valid_arfcn(340, 'GSM480')) |
| 43 | self.assertFalse(arfcn.is_valid_arfcn(305, 'GSM480')) |
| 44 | self.assertFalse(arfcn.is_valid_arfcn(341, 'GSM480')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 45 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 46 | self.assertTrue(arfcn.is_valid_arfcn(128, 'GSM850')) |
| 47 | self.assertTrue(arfcn.is_valid_arfcn(199, 'GSM850')) |
| 48 | self.assertTrue(arfcn.is_valid_arfcn(251, 'GSM850')) |
| 49 | self.assertFalse(arfcn.is_valid_arfcn(127, 'GSM480')) |
| 50 | self.assertFalse(arfcn.is_valid_arfcn(251, 'GSM480')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 51 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 52 | self.assertTrue(arfcn.is_valid_arfcn(1, 'P-GSM')) |
| 53 | self.assertTrue(arfcn.is_valid_arfcn(63, 'P-GSM')) |
| 54 | self.assertTrue(arfcn.is_valid_arfcn(124, 'P-GSM')) |
| 55 | self.assertFalse(arfcn.is_valid_arfcn(0, 'P-GSM')) |
| 56 | self.assertFalse(arfcn.is_valid_arfcn(125, 'P-GSM')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 57 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 58 | self.assertTrue(arfcn.is_valid_arfcn(975, 'E-GSM')) |
| 59 | self.assertTrue(arfcn.is_valid_arfcn(999, 'E-GSM')) |
| 60 | self.assertTrue(arfcn.is_valid_arfcn(1023, 'E-GSM')) |
| 61 | self.assertFalse(arfcn.is_valid_arfcn(974, 'E-GSM')) |
| 62 | self.assertFalse(arfcn.is_valid_arfcn(1024, 'E-GSM')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 63 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 64 | self.assertTrue(arfcn.is_valid_arfcn(955, 'R-GSM')) |
| 65 | self.assertTrue(arfcn.is_valid_arfcn(989, 'R-GSM')) |
| 66 | self.assertTrue(arfcn.is_valid_arfcn(1023, 'R-GSM')) |
| 67 | self.assertFalse(arfcn.is_valid_arfcn(954, 'R-GSM')) |
| 68 | self.assertFalse(arfcn.is_valid_arfcn(1024, 'R-GSM')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 69 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 70 | self.assertTrue(arfcn.is_valid_arfcn(512, 'DCS1800')) |
| 71 | self.assertTrue(arfcn.is_valid_arfcn(732, 'DCS1800')) |
| 72 | self.assertTrue(arfcn.is_valid_arfcn(885, 'DCS1800')) |
| 73 | self.assertFalse(arfcn.is_valid_arfcn(511, 'DCS1800')) |
| 74 | self.assertFalse(arfcn.is_valid_arfcn(886, 'DCS1800')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 75 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 76 | self.assertTrue(arfcn.is_valid_arfcn(512, 'PCS1900')) |
| 77 | self.assertTrue(arfcn.is_valid_arfcn(691, 'PCS1900')) |
| 78 | self.assertTrue(arfcn.is_valid_arfcn(810, 'PCS1900')) |
| 79 | self.assertFalse(arfcn.is_valid_arfcn(511, 'PCS1900')) |
| 80 | self.assertFalse(arfcn.is_valid_arfcn(811, 'PCS1900')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 81 | |
| 82 | |
| 83 | def test_002_is_valid_uplink(self): |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 84 | self.assertTrue(arfcn.is_valid_uplink(450.6e6, 'GSM450')) |
| 85 | self.assertTrue(arfcn.is_valid_uplink(457.4e6, 'GSM450')) |
| 86 | self.assertFalse(arfcn.is_valid_uplink(450.4e6, 'GSM450')) |
| 87 | self.assertFalse(arfcn.is_valid_uplink(457.6e6, 'GSM450')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 88 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 89 | self.assertTrue(arfcn.is_valid_uplink(479e6, 'GSM480')) |
| 90 | self.assertTrue(arfcn.is_valid_uplink(485.8e6, 'GSM480')) |
| 91 | self.assertFalse(arfcn.is_valid_uplink(478.8e6, 'GSM480')) |
| 92 | self.assertFalse(arfcn.is_valid_uplink(486e6, 'GSM480')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 93 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 94 | self.assertTrue(arfcn.is_valid_uplink(824.2e6, 'GSM850')) |
| 95 | self.assertTrue(arfcn.is_valid_uplink(848.8e6, 'GSM850')) |
| 96 | self.assertFalse(arfcn.is_valid_uplink(824e6, 'GSM850')) |
| 97 | self.assertFalse(arfcn.is_valid_uplink(849e6, 'GSM850')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 98 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 99 | self.assertTrue(arfcn.is_valid_uplink(890.2e6, 'P-GSM')) |
| 100 | self.assertTrue(arfcn.is_valid_uplink(914.8e6, 'P-GSM')) |
| 101 | self.assertFalse(arfcn.is_valid_uplink(890e6, 'P-GSM')) |
| 102 | self.assertFalse(arfcn.is_valid_uplink(915e6, 'P-GSM')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 103 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 104 | self.assertTrue(arfcn.is_valid_uplink(880.2e6, 'E-GSM')) |
| 105 | self.assertTrue(arfcn.is_valid_uplink(889.8e6, 'E-GSM')) |
| 106 | self.assertFalse(arfcn.is_valid_uplink(880e6, 'E-GSM')) |
| 107 | self.assertFalse(arfcn.is_valid_uplink(890e6, 'E-GSM')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 108 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 109 | self.assertTrue(arfcn.is_valid_uplink(876.2e6, 'R-GSM')) |
| 110 | self.assertTrue(arfcn.is_valid_uplink(889.8e6, 'R-GSM')) |
| 111 | self.assertFalse(arfcn.is_valid_uplink(876e6, 'R-GSM')) |
| 112 | self.assertFalse(arfcn.is_valid_uplink(890e6, 'R-GSM')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 113 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 114 | self.assertTrue(arfcn.is_valid_uplink(1710.2e6, 'DCS1800')) |
| 115 | self.assertTrue(arfcn.is_valid_uplink(1784.8e6, 'DCS1800')) |
| 116 | self.assertFalse(arfcn.is_valid_uplink(1710e6, 'DCS1800')) |
| 117 | self.assertFalse(arfcn.is_valid_uplink(1785e6, 'DCS1800')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 118 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 119 | self.assertTrue(arfcn.is_valid_uplink(1850.2e6, 'PCS1900')) |
| 120 | self.assertTrue(arfcn.is_valid_uplink(1909.8e6, 'PCS1900')) |
| 121 | self.assertFalse(arfcn.is_valid_uplink(1850e6, 'PCS1900')) |
| 122 | self.assertFalse(arfcn.is_valid_uplink(1910e6, 'PCS1900')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 123 | |
| 124 | |
| 125 | def test_003_is_valid_downlink(self): |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 126 | self.assertTrue(arfcn.is_valid_downlink(460.6e6, 'GSM450')) |
| 127 | self.assertTrue(arfcn.is_valid_downlink(467.4e6, 'GSM450')) |
| 128 | self.assertFalse(arfcn.is_valid_downlink(460.4e6, 'GSM450')) |
| 129 | self.assertFalse(arfcn.is_valid_downlink(467.6e6, 'GSM450')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 130 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 131 | self.assertTrue(arfcn.is_valid_downlink(489e6, 'GSM480')) |
| 132 | self.assertTrue(arfcn.is_valid_downlink(495.8e6, 'GSM480')) |
| 133 | self.assertFalse(arfcn.is_valid_downlink(488.8e6, 'GSM480')) |
| 134 | self.assertFalse(arfcn.is_valid_downlink(496e6, 'GSM480')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 135 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 136 | self.assertTrue(arfcn.is_valid_downlink(869.2e6, 'GSM850')) |
| 137 | self.assertTrue(arfcn.is_valid_downlink(893.8e6, 'GSM850')) |
| 138 | self.assertFalse(arfcn.is_valid_downlink(869e6, 'GSM850')) |
| 139 | self.assertFalse(arfcn.is_valid_downlink(894e6, 'GSM850')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 140 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 141 | self.assertTrue(arfcn.is_valid_downlink(935.2e6, 'P-GSM')) |
| 142 | self.assertTrue(arfcn.is_valid_downlink(959.8e6, 'P-GSM')) |
| 143 | self.assertFalse(arfcn.is_valid_downlink(935e6, 'P-GSM')) |
| 144 | self.assertFalse(arfcn.is_valid_downlink(960e6, 'P-GSM')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 145 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 146 | self.assertTrue(arfcn.is_valid_downlink(925.2e6, 'E-GSM')) |
| 147 | self.assertTrue(arfcn.is_valid_downlink(934.8e6, 'E-GSM')) |
| 148 | self.assertFalse(arfcn.is_valid_downlink(925e6, 'E-GSM')) |
| 149 | self.assertFalse(arfcn.is_valid_downlink(935e6, 'E-GSM')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 150 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 151 | self.assertTrue(arfcn.is_valid_downlink(921.2e6, 'R-GSM')) |
| 152 | self.assertTrue(arfcn.is_valid_downlink(934.8e6, 'R-GSM')) |
| 153 | self.assertFalse(arfcn.is_valid_downlink(921e6, 'R-GSM')) |
| 154 | self.assertFalse(arfcn.is_valid_downlink(935e6, 'R-GSM')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 155 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 156 | self.assertTrue(arfcn.is_valid_downlink(1805.2e6, 'DCS1800')) |
| 157 | self.assertTrue(arfcn.is_valid_downlink(1879.8e6, 'DCS1800')) |
| 158 | self.assertFalse(arfcn.is_valid_downlink(1805e6, 'DCS1800')) |
| 159 | self.assertFalse(arfcn.is_valid_downlink(1880e6, 'DCS1800')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 160 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 161 | self.assertTrue(arfcn.is_valid_downlink(1930.2e6, 'PCS1900')) |
| 162 | self.assertTrue(arfcn.is_valid_downlink(1989.8e6, 'PCS1900')) |
| 163 | self.assertFalse(arfcn.is_valid_downlink(1930e6, 'PCS1900')) |
| 164 | self.assertFalse(arfcn.is_valid_downlink(1990e6, 'PCS1900')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 165 | |
| 166 | def test_004_arfcn2uplink(self): |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 167 | self.assertEqual(450.6e6, arfcn.arfcn2uplink(259, 'GSM450')) |
| 168 | self.assertEqual(457.4e6, arfcn.arfcn2uplink(293, 'GSM450')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 169 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 170 | self.assertEqual(479e6, arfcn.arfcn2uplink(306, 'GSM480')) |
| 171 | self.assertEqual(485.8e6, arfcn.arfcn2uplink(340, 'GSM480')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 172 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 173 | self.assertEqual(824.2e6, arfcn.arfcn2uplink(128, 'GSM850')) |
| 174 | self.assertEqual(848.8e6, arfcn.arfcn2uplink(251, 'GSM850')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 175 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 176 | self.assertEqual(890.2e6, arfcn.arfcn2uplink(1, 'P-GSM')) |
| 177 | self.assertEqual(914.8e6, arfcn.arfcn2uplink(124, 'P-GSM')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 178 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 179 | self.assertEqual(880.2e6, arfcn.arfcn2uplink(975, 'E-GSM')) |
| 180 | self.assertEqual(889.8e6, arfcn.arfcn2uplink(1023, 'E-GSM')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 181 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 182 | self.assertEqual(876.2e6, arfcn.arfcn2uplink(955, 'R-GSM')) |
| 183 | self.assertEqual(889.8e6, arfcn.arfcn2uplink(1023, 'R-GSM')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 184 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 185 | self.assertEqual(1710.2e6, arfcn.arfcn2uplink(512, 'DCS1800')) |
| 186 | self.assertEqual(1784.8e6, arfcn.arfcn2uplink(885, 'DCS1800')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 187 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 188 | self.assertEqual(1850.2e6, arfcn.arfcn2uplink(512, 'PCS1900')) |
| 189 | self.assertEqual(1909.8e6, arfcn.arfcn2uplink(810, 'PCS1900')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 190 | |
| 191 | def test_005_arfcn2downlink(self): |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 192 | self.assertEqual(460.6e6, arfcn.arfcn2downlink(259, 'GSM450')) |
| 193 | self.assertEqual(467.4e6, arfcn.arfcn2downlink(293, 'GSM450')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 194 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 195 | self.assertEqual(489e6, arfcn.arfcn2downlink(306, 'GSM480')) |
| 196 | self.assertEqual(495.8e6, arfcn.arfcn2downlink(340, 'GSM480')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 197 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 198 | self.assertEqual(869.2e6, arfcn.arfcn2downlink(128, 'GSM850')) |
| 199 | self.assertEqual(893.8e6, arfcn.arfcn2downlink(251, 'GSM850')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 200 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 201 | self.assertEqual(935.2e6, arfcn.arfcn2downlink(1, 'P-GSM')) |
| 202 | self.assertEqual(959.8e6, arfcn.arfcn2downlink(124, 'P-GSM')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 203 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 204 | self.assertEqual(925.2e6, arfcn.arfcn2downlink(975, 'E-GSM')) |
| 205 | self.assertEqual(934.8e6, arfcn.arfcn2downlink(1023, 'E-GSM')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 206 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 207 | self.assertEqual(921.2e6, arfcn.arfcn2downlink(955, 'R-GSM')) |
| 208 | self.assertEqual(934.8e6, arfcn.arfcn2downlink(1023, 'R-GSM')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 209 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 210 | self.assertEqual(1805.2e6, arfcn.arfcn2downlink(512, 'DCS1800')) |
| 211 | self.assertEqual(1879.8e6, arfcn.arfcn2downlink(885, 'DCS1800')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 212 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 213 | self.assertEqual(1930.2e6, arfcn.arfcn2downlink(512, 'PCS1900')) |
| 214 | self.assertEqual(1989.8e6, arfcn.arfcn2downlink(810, 'PCS1900')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 215 | |
| 216 | def test_006_uplink2arfcn(self): |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 217 | self.assertEqual(259, arfcn.uplink2arfcn(450.6e6, 'GSM450')) |
| 218 | self.assertEqual(293, arfcn.uplink2arfcn(457.4e6, 'GSM450')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 219 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 220 | self.assertEqual(306, arfcn.uplink2arfcn(479e6, 'GSM480')) |
| 221 | self.assertEqual(340, arfcn.uplink2arfcn(485.8e6, 'GSM480')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 222 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 223 | self.assertEqual(128, arfcn.uplink2arfcn(824.2e6, 'GSM850')) |
| 224 | self.assertEqual(251, arfcn.uplink2arfcn(848.8e6, 'GSM850')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 225 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 226 | self.assertEqual(1, arfcn.uplink2arfcn(890.2e6, 'P-GSM')) |
| 227 | self.assertEqual(124, arfcn.uplink2arfcn(914.8e6, 'P-GSM')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 228 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 229 | self.assertEqual(975, arfcn.uplink2arfcn(880.2e6, 'E-GSM')) |
| 230 | self.assertEqual(1023, arfcn.uplink2arfcn(889.8e6, 'E-GSM')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 231 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 232 | self.assertEqual(955, arfcn.uplink2arfcn(876.2e6, 'R-GSM')) |
| 233 | self.assertEqual(1023, arfcn.uplink2arfcn(889.8e6, 'R-GSM')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 234 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 235 | self.assertEqual(512, arfcn.uplink2arfcn(1710.2e6, 'DCS1800')) |
| 236 | self.assertEqual(885, arfcn.uplink2arfcn(1784.8e6, 'DCS1800')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 237 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 238 | self.assertEqual(512, arfcn.uplink2arfcn(1850.2e6, 'PCS1900')) |
| 239 | self.assertEqual(810, arfcn.uplink2arfcn(1909.8e6, 'PCS1900')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 240 | |
| 241 | def test_007_downlink2arfcn(self): |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 242 | self.assertEqual(259, arfcn.downlink2arfcn(460.6e6, 'GSM450')) |
| 243 | self.assertEqual(293, arfcn.downlink2arfcn(467.4e6, 'GSM450')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 244 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 245 | self.assertEqual(306, arfcn.downlink2arfcn(489e6, 'GSM480')) |
| 246 | self.assertEqual(340, arfcn.downlink2arfcn(495.8e6, 'GSM480')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 247 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 248 | self.assertEqual(128, arfcn.downlink2arfcn(869.2e6, 'GSM850')) |
| 249 | self.assertEqual(251, arfcn.downlink2arfcn(893.8e6, 'GSM850')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 250 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 251 | self.assertEqual(1, arfcn.downlink2arfcn(935.2e6, 'P-GSM')) |
| 252 | self.assertEqual(124, arfcn.downlink2arfcn(959.8e6, 'P-GSM')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 253 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 254 | self.assertEqual(975, arfcn.downlink2arfcn(925.2e6, 'E-GSM')) |
| 255 | self.assertEqual(1023, arfcn.downlink2arfcn(934.8e6, 'E-GSM')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 256 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 257 | self.assertEqual(955, arfcn.downlink2arfcn(921.2e6, 'R-GSM')) |
| 258 | self.assertEqual(1023, arfcn.downlink2arfcn(934.8e6, 'R-GSM')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 259 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 260 | self.assertEqual(512, arfcn.downlink2arfcn(1805.2e6, 'DCS1800')) |
| 261 | self.assertEqual(885, arfcn.downlink2arfcn(1879.8e6, 'DCS1800')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 262 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 263 | self.assertEqual(512, arfcn.downlink2arfcn(1930.2e6, 'PCS1900')) |
| 264 | self.assertEqual(810, arfcn.downlink2arfcn(1989.8e6, 'PCS1900')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 265 | |
Roman Khassraf | 5ec7987 | 2015-09-26 08:29:13 +0200 | [diff] [blame] | 266 | def test_008_firstarfcn(self): |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 267 | self.assertEqual(259, arfcn.get_first_arfcn('GSM450')) |
| 268 | self.assertEqual(306, arfcn.get_first_arfcn('GSM480')) |
| 269 | self.assertEqual(128, arfcn.get_first_arfcn('GSM850')) |
| 270 | self.assertEqual(1, arfcn.get_first_arfcn('P-GSM')) |
| 271 | self.assertEqual(975, arfcn.get_first_arfcn('E-GSM')) |
| 272 | self.assertEqual(955, arfcn.get_first_arfcn('R-GSM')) |
| 273 | self.assertEqual(512, arfcn.get_first_arfcn('DCS1800')) |
| 274 | self.assertEqual(512, arfcn.get_first_arfcn('PCS1900')) |
Roman Khassraf | 5ec7987 | 2015-09-26 08:29:13 +0200 | [diff] [blame] | 275 | |
| 276 | def test_009_firstarfcn(self): |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 277 | self.assertEqual(293, arfcn.get_last_arfcn('GSM450')) |
| 278 | self.assertEqual(340, arfcn.get_last_arfcn('GSM480')) |
| 279 | self.assertEqual(251, arfcn.get_last_arfcn('GSM850')) |
| 280 | self.assertEqual(124, arfcn.get_last_arfcn('P-GSM')) |
| 281 | self.assertEqual(1023, arfcn.get_last_arfcn('E-GSM')) |
| 282 | self.assertEqual(1023, arfcn.get_last_arfcn('R-GSM')) |
| 283 | self.assertEqual(885, arfcn.get_last_arfcn('DCS1800')) |
| 284 | self.assertEqual(810, arfcn.get_last_arfcn('PCS1900')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 285 | |
| 286 | if __name__ == '__main__': |
| 287 | gr_unittest.run(qa_arfcn, "qa_arfcn.xml") |
| 288 | |