blob: 64775ff445e3fb443bd22e93a403d0cd9ae9e36a [file] [log] [blame]
Roman Khassraf91448612015-08-21 11:14:51 +02001#!/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
24from gnuradio import gr, gr_unittest, blocks
25import grgsm
26import os
27import sys
28
29
30class 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
265
266if __name__ == '__main__':
267 gr_unittest.run(qa_arfcn, "qa_arfcn.xml")
268