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 | |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 31 | class qa_arfcn(gr_unittest.TestCase): |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 32 | def test_001_is_valid_arfcn(self): |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 33 | self.assertTrue(arfcn.is_valid_arfcn(259, 'GSM450')) |
| 34 | self.assertTrue(arfcn.is_valid_arfcn(277, 'GSM450')) |
| 35 | self.assertTrue(arfcn.is_valid_arfcn(293, 'GSM450')) |
| 36 | self.assertFalse(arfcn.is_valid_arfcn(258, 'GSM450')) |
| 37 | self.assertFalse(arfcn.is_valid_arfcn(294, 'GSM450')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 38 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 39 | self.assertTrue(arfcn.is_valid_arfcn(306, 'GSM480')) |
| 40 | self.assertTrue(arfcn.is_valid_arfcn(323, 'GSM480')) |
| 41 | self.assertTrue(arfcn.is_valid_arfcn(340, 'GSM480')) |
| 42 | self.assertFalse(arfcn.is_valid_arfcn(305, 'GSM480')) |
| 43 | self.assertFalse(arfcn.is_valid_arfcn(341, 'GSM480')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 44 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 45 | self.assertTrue(arfcn.is_valid_arfcn(128, 'GSM850')) |
| 46 | self.assertTrue(arfcn.is_valid_arfcn(199, 'GSM850')) |
| 47 | self.assertTrue(arfcn.is_valid_arfcn(251, 'GSM850')) |
| 48 | self.assertFalse(arfcn.is_valid_arfcn(127, 'GSM480')) |
| 49 | self.assertFalse(arfcn.is_valid_arfcn(251, 'GSM480')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 50 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 51 | self.assertTrue(arfcn.is_valid_arfcn(1, 'P-GSM')) |
| 52 | self.assertTrue(arfcn.is_valid_arfcn(63, 'P-GSM')) |
| 53 | self.assertTrue(arfcn.is_valid_arfcn(124, 'P-GSM')) |
| 54 | self.assertFalse(arfcn.is_valid_arfcn(0, 'P-GSM')) |
| 55 | self.assertFalse(arfcn.is_valid_arfcn(125, 'P-GSM')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 56 | |
| 57 | self.assertTrue(arfcn.is_valid_arfcn(0, 'E-GSM')) |
| 58 | self.assertTrue(arfcn.is_valid_arfcn(1, 'E-GSM')) |
| 59 | self.assertTrue(arfcn.is_valid_arfcn(124, 'E-GSM')) |
| 60 | self.assertFalse(arfcn.is_valid_arfcn(125, 'E-GSM')) |
| 61 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 62 | self.assertTrue(arfcn.is_valid_arfcn(975, 'E-GSM')) |
| 63 | self.assertTrue(arfcn.is_valid_arfcn(999, 'E-GSM')) |
| 64 | self.assertTrue(arfcn.is_valid_arfcn(1023, 'E-GSM')) |
| 65 | self.assertFalse(arfcn.is_valid_arfcn(974, 'E-GSM')) |
| 66 | self.assertFalse(arfcn.is_valid_arfcn(1024, 'E-GSM')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 67 | |
| 68 | self.assertTrue(arfcn.is_valid_arfcn(0, 'R-GSM')) |
| 69 | self.assertTrue(arfcn.is_valid_arfcn(1, 'R-GSM')) |
| 70 | self.assertTrue(arfcn.is_valid_arfcn(124, 'R-GSM')) |
| 71 | self.assertFalse(arfcn.is_valid_arfcn(125, 'R-GSM')) |
| 72 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 73 | self.assertTrue(arfcn.is_valid_arfcn(955, 'R-GSM')) |
| 74 | self.assertTrue(arfcn.is_valid_arfcn(989, 'R-GSM')) |
| 75 | self.assertTrue(arfcn.is_valid_arfcn(1023, 'R-GSM')) |
| 76 | self.assertFalse(arfcn.is_valid_arfcn(954, 'R-GSM')) |
| 77 | self.assertFalse(arfcn.is_valid_arfcn(1024, 'R-GSM')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 78 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 79 | self.assertTrue(arfcn.is_valid_arfcn(512, 'DCS1800')) |
| 80 | self.assertTrue(arfcn.is_valid_arfcn(732, 'DCS1800')) |
| 81 | self.assertTrue(arfcn.is_valid_arfcn(885, 'DCS1800')) |
| 82 | self.assertFalse(arfcn.is_valid_arfcn(511, 'DCS1800')) |
| 83 | self.assertFalse(arfcn.is_valid_arfcn(886, 'DCS1800')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 84 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 85 | self.assertTrue(arfcn.is_valid_arfcn(512, 'PCS1900')) |
| 86 | self.assertTrue(arfcn.is_valid_arfcn(691, 'PCS1900')) |
| 87 | self.assertTrue(arfcn.is_valid_arfcn(810, 'PCS1900')) |
| 88 | self.assertFalse(arfcn.is_valid_arfcn(511, 'PCS1900')) |
| 89 | self.assertFalse(arfcn.is_valid_arfcn(811, 'PCS1900')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 90 | |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 91 | def test_002_is_valid_uplink(self): |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 92 | self.assertTrue(arfcn.is_valid_uplink(450.6e6, 'GSM450')) |
| 93 | self.assertTrue(arfcn.is_valid_uplink(457.4e6, 'GSM450')) |
| 94 | self.assertFalse(arfcn.is_valid_uplink(450.4e6, 'GSM450')) |
| 95 | self.assertFalse(arfcn.is_valid_uplink(457.6e6, 'GSM450')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 96 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 97 | self.assertTrue(arfcn.is_valid_uplink(479e6, 'GSM480')) |
| 98 | self.assertTrue(arfcn.is_valid_uplink(485.8e6, 'GSM480')) |
| 99 | self.assertFalse(arfcn.is_valid_uplink(478.8e6, 'GSM480')) |
| 100 | self.assertFalse(arfcn.is_valid_uplink(486e6, 'GSM480')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 101 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 102 | self.assertTrue(arfcn.is_valid_uplink(824.2e6, 'GSM850')) |
| 103 | self.assertTrue(arfcn.is_valid_uplink(848.8e6, 'GSM850')) |
| 104 | self.assertFalse(arfcn.is_valid_uplink(824e6, 'GSM850')) |
| 105 | self.assertFalse(arfcn.is_valid_uplink(849e6, 'GSM850')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 106 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 107 | self.assertTrue(arfcn.is_valid_uplink(890.2e6, 'P-GSM')) |
| 108 | self.assertTrue(arfcn.is_valid_uplink(914.8e6, 'P-GSM')) |
| 109 | self.assertFalse(arfcn.is_valid_uplink(890e6, 'P-GSM')) |
| 110 | self.assertFalse(arfcn.is_valid_uplink(915e6, 'P-GSM')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 111 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 112 | self.assertTrue(arfcn.is_valid_uplink(880.2e6, 'E-GSM')) |
| 113 | self.assertTrue(arfcn.is_valid_uplink(889.8e6, 'E-GSM')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 114 | self.assertTrue(arfcn.is_valid_uplink(890.0e6, 'E-GSM')) |
| 115 | self.assertTrue(arfcn.is_valid_uplink(914.8e6, 'E-GSM')) |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 116 | self.assertFalse(arfcn.is_valid_uplink(880e6, 'E-GSM')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 117 | self.assertFalse(arfcn.is_valid_uplink(915e6, 'E-GSM')) |
| 118 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 119 | self.assertTrue(arfcn.is_valid_uplink(876.2e6, 'R-GSM')) |
| 120 | self.assertTrue(arfcn.is_valid_uplink(889.8e6, 'R-GSM')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 121 | self.assertTrue(arfcn.is_valid_uplink(890.0e6, 'R-GSM')) |
| 122 | self.assertTrue(arfcn.is_valid_uplink(914.8e6, 'R-GSM')) |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 123 | self.assertFalse(arfcn.is_valid_uplink(876e6, 'R-GSM')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 124 | self.assertFalse(arfcn.is_valid_uplink(915e6, 'R-GSM')) |
| 125 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 126 | self.assertTrue(arfcn.is_valid_uplink(1710.2e6, 'DCS1800')) |
| 127 | self.assertTrue(arfcn.is_valid_uplink(1784.8e6, 'DCS1800')) |
| 128 | self.assertFalse(arfcn.is_valid_uplink(1710e6, 'DCS1800')) |
| 129 | self.assertFalse(arfcn.is_valid_uplink(1785e6, 'DCS1800')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 130 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 131 | self.assertTrue(arfcn.is_valid_uplink(1850.2e6, 'PCS1900')) |
| 132 | self.assertTrue(arfcn.is_valid_uplink(1909.8e6, 'PCS1900')) |
| 133 | self.assertFalse(arfcn.is_valid_uplink(1850e6, 'PCS1900')) |
| 134 | self.assertFalse(arfcn.is_valid_uplink(1910e6, 'PCS1900')) |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 135 | |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 136 | def test_003_is_valid_downlink(self): |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 137 | self.assertTrue(arfcn.is_valid_downlink(460.6e6, 'GSM450')) |
| 138 | self.assertTrue(arfcn.is_valid_downlink(467.4e6, 'GSM450')) |
| 139 | self.assertFalse(arfcn.is_valid_downlink(460.4e6, 'GSM450')) |
| 140 | self.assertFalse(arfcn.is_valid_downlink(467.6e6, 'GSM450')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 141 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 142 | self.assertTrue(arfcn.is_valid_downlink(489e6, 'GSM480')) |
| 143 | self.assertTrue(arfcn.is_valid_downlink(495.8e6, 'GSM480')) |
| 144 | self.assertFalse(arfcn.is_valid_downlink(488.8e6, 'GSM480')) |
| 145 | self.assertFalse(arfcn.is_valid_downlink(496e6, 'GSM480')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 146 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 147 | self.assertTrue(arfcn.is_valid_downlink(869.2e6, 'GSM850')) |
| 148 | self.assertTrue(arfcn.is_valid_downlink(893.8e6, 'GSM850')) |
| 149 | self.assertFalse(arfcn.is_valid_downlink(869e6, 'GSM850')) |
| 150 | self.assertFalse(arfcn.is_valid_downlink(894e6, 'GSM850')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 151 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 152 | self.assertTrue(arfcn.is_valid_downlink(935.2e6, 'P-GSM')) |
| 153 | self.assertTrue(arfcn.is_valid_downlink(959.8e6, 'P-GSM')) |
| 154 | self.assertFalse(arfcn.is_valid_downlink(935e6, 'P-GSM')) |
| 155 | self.assertFalse(arfcn.is_valid_downlink(960e6, 'P-GSM')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 156 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 157 | self.assertTrue(arfcn.is_valid_downlink(925.2e6, 'E-GSM')) |
| 158 | self.assertTrue(arfcn.is_valid_downlink(934.8e6, 'E-GSM')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 159 | self.assertTrue(arfcn.is_valid_downlink(935.0e6, 'E-GSM')) |
| 160 | self.assertTrue(arfcn.is_valid_downlink(959.8e6, 'E-GSM')) |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 161 | self.assertFalse(arfcn.is_valid_downlink(925e6, 'E-GSM')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 162 | self.assertFalse(arfcn.is_valid_downlink(960e6, 'E-GSM')) |
| 163 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 164 | self.assertTrue(arfcn.is_valid_downlink(921.2e6, 'R-GSM')) |
| 165 | self.assertTrue(arfcn.is_valid_downlink(934.8e6, 'R-GSM')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 166 | self.assertTrue(arfcn.is_valid_downlink(935.0e6, 'R-GSM')) |
| 167 | self.assertTrue(arfcn.is_valid_downlink(959.8e6, 'R-GSM')) |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 168 | self.assertFalse(arfcn.is_valid_downlink(921e6, 'R-GSM')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 169 | self.assertFalse(arfcn.is_valid_downlink(960e6, 'R-GSM')) |
| 170 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 171 | self.assertTrue(arfcn.is_valid_downlink(1805.2e6, 'DCS1800')) |
| 172 | self.assertTrue(arfcn.is_valid_downlink(1879.8e6, 'DCS1800')) |
| 173 | self.assertFalse(arfcn.is_valid_downlink(1805e6, 'DCS1800')) |
| 174 | self.assertFalse(arfcn.is_valid_downlink(1880e6, 'DCS1800')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 175 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 176 | self.assertTrue(arfcn.is_valid_downlink(1930.2e6, 'PCS1900')) |
| 177 | self.assertTrue(arfcn.is_valid_downlink(1989.8e6, 'PCS1900')) |
| 178 | self.assertFalse(arfcn.is_valid_downlink(1930e6, 'PCS1900')) |
| 179 | self.assertFalse(arfcn.is_valid_downlink(1990e6, 'PCS1900')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 180 | |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 181 | def test_004_arfcn2uplink(self): |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 182 | self.assertEqual(450.6e6, arfcn.arfcn2uplink(259, 'GSM450')) |
| 183 | self.assertEqual(457.4e6, arfcn.arfcn2uplink(293, 'GSM450')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 184 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 185 | self.assertEqual(479e6, arfcn.arfcn2uplink(306, 'GSM480')) |
| 186 | self.assertEqual(485.8e6, arfcn.arfcn2uplink(340, 'GSM480')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 187 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 188 | self.assertEqual(824.2e6, arfcn.arfcn2uplink(128, 'GSM850')) |
| 189 | self.assertEqual(848.8e6, arfcn.arfcn2uplink(251, 'GSM850')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 190 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 191 | self.assertEqual(890.2e6, arfcn.arfcn2uplink(1, 'P-GSM')) |
| 192 | self.assertEqual(914.8e6, arfcn.arfcn2uplink(124, 'P-GSM')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 193 | |
| 194 | self.assertEqual(890.0e6, arfcn.arfcn2uplink(0, 'E-GSM')) |
| 195 | self.assertEqual(914.8e6, arfcn.arfcn2uplink(124, 'E-GSM')) |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 196 | self.assertEqual(880.2e6, arfcn.arfcn2uplink(975, 'E-GSM')) |
| 197 | self.assertEqual(889.8e6, arfcn.arfcn2uplink(1023, 'E-GSM')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 198 | |
| 199 | self.assertEqual(890.0e6, arfcn.arfcn2uplink(0, 'R-GSM')) |
| 200 | self.assertEqual(914.8e6, arfcn.arfcn2uplink(124, 'R-GSM')) |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 201 | self.assertEqual(876.2e6, arfcn.arfcn2uplink(955, 'R-GSM')) |
| 202 | self.assertEqual(889.8e6, arfcn.arfcn2uplink(1023, 'R-GSM')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 203 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 204 | self.assertEqual(1710.2e6, arfcn.arfcn2uplink(512, 'DCS1800')) |
| 205 | self.assertEqual(1784.8e6, arfcn.arfcn2uplink(885, 'DCS1800')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 206 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 207 | self.assertEqual(1850.2e6, arfcn.arfcn2uplink(512, 'PCS1900')) |
| 208 | self.assertEqual(1909.8e6, arfcn.arfcn2uplink(810, 'PCS1900')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 209 | |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 210 | def test_005_arfcn2downlink(self): |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 211 | self.assertEqual(460.6e6, arfcn.arfcn2downlink(259, 'GSM450')) |
| 212 | self.assertEqual(467.4e6, arfcn.arfcn2downlink(293, 'GSM450')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 213 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 214 | self.assertEqual(489e6, arfcn.arfcn2downlink(306, 'GSM480')) |
| 215 | self.assertEqual(495.8e6, arfcn.arfcn2downlink(340, 'GSM480')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 216 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 217 | self.assertEqual(869.2e6, arfcn.arfcn2downlink(128, 'GSM850')) |
| 218 | self.assertEqual(893.8e6, arfcn.arfcn2downlink(251, 'GSM850')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 219 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 220 | self.assertEqual(935.2e6, arfcn.arfcn2downlink(1, 'P-GSM')) |
| 221 | self.assertEqual(959.8e6, arfcn.arfcn2downlink(124, 'P-GSM')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 222 | |
| 223 | self.assertEqual(935.0e6, arfcn.arfcn2downlink(0, 'E-GSM')) |
| 224 | self.assertEqual(959.8e6, arfcn.arfcn2downlink(124, 'E-GSM')) |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 225 | self.assertEqual(925.2e6, arfcn.arfcn2downlink(975, 'E-GSM')) |
| 226 | self.assertEqual(934.8e6, arfcn.arfcn2downlink(1023, 'E-GSM')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 227 | |
| 228 | self.assertEqual(935.0e6, arfcn.arfcn2downlink(0, 'R-GSM')) |
| 229 | self.assertEqual(959.8e6, arfcn.arfcn2downlink(124, 'R-GSM')) |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 230 | self.assertEqual(921.2e6, arfcn.arfcn2downlink(955, 'R-GSM')) |
| 231 | self.assertEqual(934.8e6, arfcn.arfcn2downlink(1023, 'R-GSM')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 232 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 233 | self.assertEqual(1805.2e6, arfcn.arfcn2downlink(512, 'DCS1800')) |
| 234 | self.assertEqual(1879.8e6, arfcn.arfcn2downlink(885, 'DCS1800')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 235 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 236 | self.assertEqual(1930.2e6, arfcn.arfcn2downlink(512, 'PCS1900')) |
| 237 | self.assertEqual(1989.8e6, arfcn.arfcn2downlink(810, 'PCS1900')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 238 | |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 239 | def test_006_uplink2arfcn(self): |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 240 | self.assertEqual(259, arfcn.uplink2arfcn(450.6e6, 'GSM450')) |
| 241 | self.assertEqual(293, arfcn.uplink2arfcn(457.4e6, 'GSM450')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 242 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 243 | self.assertEqual(306, arfcn.uplink2arfcn(479e6, 'GSM480')) |
| 244 | self.assertEqual(340, arfcn.uplink2arfcn(485.8e6, 'GSM480')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 245 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 246 | self.assertEqual(128, arfcn.uplink2arfcn(824.2e6, 'GSM850')) |
| 247 | self.assertEqual(251, arfcn.uplink2arfcn(848.8e6, 'GSM850')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 248 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 249 | self.assertEqual(1, arfcn.uplink2arfcn(890.2e6, 'P-GSM')) |
| 250 | self.assertEqual(124, arfcn.uplink2arfcn(914.8e6, 'P-GSM')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 251 | |
| 252 | self.assertEqual(0, arfcn.uplink2arfcn(890.0e6, 'E-GSM')) |
| 253 | self.assertEqual(124, arfcn.uplink2arfcn(914.8e6, 'E-GSM')) |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 254 | self.assertEqual(975, arfcn.uplink2arfcn(880.2e6, 'E-GSM')) |
| 255 | self.assertEqual(1023, arfcn.uplink2arfcn(889.8e6, 'E-GSM')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 256 | |
| 257 | self.assertEqual(0, arfcn.uplink2arfcn(890.0e6, 'R-GSM')) |
| 258 | self.assertEqual(124, arfcn.uplink2arfcn(914.8e6, 'R-GSM')) |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 259 | self.assertEqual(955, arfcn.uplink2arfcn(876.2e6, 'R-GSM')) |
| 260 | self.assertEqual(1023, arfcn.uplink2arfcn(889.8e6, 'R-GSM')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 261 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 262 | self.assertEqual(512, arfcn.uplink2arfcn(1710.2e6, 'DCS1800')) |
| 263 | self.assertEqual(885, arfcn.uplink2arfcn(1784.8e6, 'DCS1800')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 264 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 265 | self.assertEqual(512, arfcn.uplink2arfcn(1850.2e6, 'PCS1900')) |
| 266 | self.assertEqual(810, arfcn.uplink2arfcn(1909.8e6, 'PCS1900')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 267 | |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 268 | def test_007_downlink2arfcn(self): |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 269 | self.assertEqual(259, arfcn.downlink2arfcn(460.6e6, 'GSM450')) |
| 270 | self.assertEqual(293, arfcn.downlink2arfcn(467.4e6, 'GSM450')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 271 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 272 | self.assertEqual(306, arfcn.downlink2arfcn(489e6, 'GSM480')) |
| 273 | self.assertEqual(340, arfcn.downlink2arfcn(495.8e6, 'GSM480')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 274 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 275 | self.assertEqual(128, arfcn.downlink2arfcn(869.2e6, 'GSM850')) |
| 276 | self.assertEqual(251, arfcn.downlink2arfcn(893.8e6, 'GSM850')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 277 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 278 | self.assertEqual(1, arfcn.downlink2arfcn(935.2e6, 'P-GSM')) |
| 279 | self.assertEqual(124, arfcn.downlink2arfcn(959.8e6, 'P-GSM')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 280 | |
| 281 | self.assertEqual(0, arfcn.downlink2arfcn(935.0e6, 'E-GSM')) |
| 282 | self.assertEqual(124, arfcn.downlink2arfcn(959.8e6, 'E-GSM')) |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 283 | self.assertEqual(975, arfcn.downlink2arfcn(925.2e6, 'E-GSM')) |
| 284 | self.assertEqual(1023, arfcn.downlink2arfcn(934.8e6, 'E-GSM')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 285 | |
| 286 | self.assertEqual(0, arfcn.downlink2arfcn(935.0e6, 'R-GSM')) |
| 287 | self.assertEqual(124, arfcn.downlink2arfcn(959.8e6, 'R-GSM')) |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 288 | self.assertEqual(955, arfcn.downlink2arfcn(921.2e6, 'R-GSM')) |
| 289 | self.assertEqual(1023, arfcn.downlink2arfcn(934.8e6, 'R-GSM')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 290 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 291 | self.assertEqual(512, arfcn.downlink2arfcn(1805.2e6, 'DCS1800')) |
| 292 | self.assertEqual(885, arfcn.downlink2arfcn(1879.8e6, 'DCS1800')) |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 293 | |
Piotr Krysik | 5c7b374 | 2016-06-21 07:12:32 +0200 | [diff] [blame] | 294 | self.assertEqual(512, arfcn.downlink2arfcn(1930.2e6, 'PCS1900')) |
| 295 | self.assertEqual(810, arfcn.downlink2arfcn(1989.8e6, 'PCS1900')) |
Roman Khassraf | 5ec7987 | 2015-09-26 08:29:13 +0200 | [diff] [blame] | 296 | |
Roman Khassraf | fb772f8 | 2016-09-23 07:23:05 +0200 | [diff] [blame] | 297 | def test_008_get_arfcn_ranges(self): |
| 298 | self.assertEqual(1, len(arfcn.get_arfcn_ranges('GSM450'))) |
| 299 | self.assertEqual(1, len(arfcn.get_arfcn_ranges('GSM480'))) |
| 300 | self.assertEqual(1, len(arfcn.get_arfcn_ranges('GSM850'))) |
| 301 | self.assertEqual(1, len(arfcn.get_arfcn_ranges('P-GSM'))) |
| 302 | self.assertEqual(2, len(arfcn.get_arfcn_ranges('E-GSM'))) |
| 303 | self.assertEqual(2, len(arfcn.get_arfcn_ranges('R-GSM'))) |
| 304 | self.assertEqual(1, len(arfcn.get_arfcn_ranges('DCS1800'))) |
| 305 | self.assertEqual(1, len(arfcn.get_arfcn_ranges('PCS1900'))) |
| 306 | |
| 307 | |
Roman Khassraf | 9144861 | 2015-08-21 11:14:51 +0200 | [diff] [blame] | 308 | if __name__ == '__main__': |
| 309 | gr_unittest.run(qa_arfcn, "qa_arfcn.xml") |