1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
#!/usr/bin/env python
#
# Copyright 2004,2007,2010,2013 Free Software Foundation, Inc.
#
# This file is part of GNU Radio
#
# SPDX-License-Identifier: GPL-3.0-or-later
#
#
from gnuradio import gr, gr_unittest, vocoder, blocks
class test_gsm_vocoder (gr_unittest.TestCase):
def setUp (self):
self.tb = gr.top_block ()
def tearDown (self):
self.tb = None
def test001_module_load (self):
data = 20*(100,200,300,400,500,600,700,800)
expected_data = (0,0,360,304,256,720,600,504,200,144,128,464,
376,384,680,576,440,264,176,176,640,520,480,
464,384,288,432,296,328,760,624,504,176,96,96,
416,312,360,808,672,216,104,136,504,376,448,
720,608,296,304,176,336,576,456,560,512,320,
216,344,264,456,672,576,488,192,80,152,424,
368,552,688,560,280,200,104,256,520,464,608,
488,184,104,16,472,456,360,696,568,208,136,88,
376,480,456,616,472,232,224,264,320,512,624,
632,520,176,80,192,304,400,592,664,552,248,152,
144,336,440,520,616,664,304,176,80,536,448,376,
680,600,240,168,112,408,488,472,608,480,240,232,
208,288,480,600,616,520,176,88,184,296,392,584,
656,552,248,160,144,336,432,512,608,664)
src = blocks.vector_source_s(data)
enc = vocoder.gsm_fr_encode_sp()
dec = vocoder.gsm_fr_decode_ps()
snk = blocks.vector_sink_s()
self.tb.connect(src, enc, dec, snk)
self.tb.run()
actual_result = snk.data()
self.assertEqual(expected_data, actual_result)
if __name__ == '__main__':
gr_unittest.run(test_gsm_vocoder, "test_gsm_vocoder.xml")
|