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