def test_fir_filter_scc_001(self): self.generate_scc_source() expected_data = ((-0.00775564694777+0.0437113791704j), (0.0108830630779+0.0433648750186j), (0.015553932637-0.0133284125477j), (-0.0264905355871-0.0403266139328j), (-0.0243480335921-0.03030154109j), (-0.000327925226884-0.069333948195j), (-0.0306392069906-0.107313856483j), (-0.0452371090651-0.0854917764664j), (-0.0108894333243-0.0875641107559j), (-0.0182112380862-0.118961036205j), (-0.0447825863957-0.0922874584794j), (-0.0147479763255-0.0572904124856j), (0.00204290449619-0.0721436738968j), (-0.027713002637-0.0548989400268j), (-0.0149045493454-0.00210141134448j), (0.0176361314952-0.00149522523861j), (-0.00527482619509-0.00698099425063j), (-0.0151527002454+0.036265052855j), (0.0199296213686+0.0452499426901j), (0.0122985243797+0.0143278446048j)) src = blocks.vector_source_s(self.src_data) op = filter.freq_xlating_fir_filter_scc(1, self.taps, self.fc, self.fs) dst = blocks.vector_sink_c() self.tb.connect(src, op, dst) self.tb.run() result_data = dst.data() self.assertComplexTuplesAlmostEqual(expected_data, result_data[-20:], 5)
def test_fir_filter_scf_002(self): self.generate_scf_source() expected_data = ((0.00824625696987-1.50158575707e-05j), (0.0020101047121-0.0116540221497j), (-0.0126378880814-0.00259830290452j), (-0.00363933457993+0.00837504956871j), (0.00107023562305+0.00915473792702j), (0.0169738996774+0.00422182958573j), (0.00630031805485-0.025423232466j), (-0.0283014029264+0.00104465708137j), (0.00890890974551+0.0115978596732j), (-0.0142687577754+0.00306978379376j), (0.02845691517+0.0331163145602j), (0.0538152232766-0.0908300876617j), (-0.0843691527843-0.0956566259265j), (0.0476895272732+0.0747984498739j), (0.0898786485195+0.082478672266j), (-0.0330070182681+0.101965606213j), (0.0574697069824-0.0350842289627j), (-0.0770940706134-0.230615705252j), (-0.103762261569-0.0382265634835j), (0.11808334291+0.104863762856j)) src = blocks.vector_source_s(self.src_data) op = filter.freq_xlating_fir_filter_scf(4, self.taps, self.fc, self.fs) dst = blocks.vector_sink_c() self.tb.connect(src, op, dst) self.tb.run() result_data = dst.data() self.assertComplexTuplesAlmostEqual(expected_data, result_data[-20:], 5)
def test_fir_filter_scc_002(self): self.generate_scc_source() expected_data = ((-0.0080680437386-0.00158522999845j), (-0.0037795654498+0.00733159901574j), (0.00842926371843+0.00777021236718j), (0.0112090632319-0.00249325321056j), (-0.0027476802934-0.0115710813552j), (-0.0158688724041-0.00715934624895j), (-0.00802888441831+0.00620818417519j), (0.0131985172629+0.0149175003171j), (0.0190298333764+0.00956719089299j), (-0.00112380902283-0.00936658866704j), (-0.0204226914793-0.0333464704454j), (-0.00695514678955-0.0437445007265j), (0.0314490310848-0.0207983348519j), (0.0529675260186+0.0302227605134j), (0.0317338332534+0.0667510479689j), (-0.00775565672666+0.0437112376094j), (-0.024347923696-0.0303014591336j), (-0.0108893103898-0.0875638127327j), (0.00204296782613-0.0721434056759j), (-0.00527479872108-0.00698097236454j)) src = blocks.vector_source_s(self.src_data) op = filter.freq_xlating_fir_filter_scc(4, self.taps, self.fc, self.fs) dst = blocks.vector_sink_c() self.tb.connect(src, op, dst) self.tb.run() result_data = dst.data() self.assertComplexTuplesAlmostEqual(expected_data, result_data[-20:], 5)
def test_fir_filter_scf_001(self): self.generate_scf_source() expected_data = ((-0.0330070219934+0.101965591311j), (-0.0484239049256+0.0872343629599j), (-0.0214109234512+0.102555386722j), (0.0484058149159+0.0557125210762j), (0.0574690811336-0.0350844524801j), (0.0365394353867-0.0802438184619j), (0.0453781634569-0.130992040038j), (0.00801951438189-0.214278846979j), (-0.0770946145058-0.230616629124j), (-0.105601429939-0.190731987357j), (-0.105361394584-0.177761554718j), (-0.131518915296-0.136102750897j), (-0.103761836886-0.0382263250649j), (-0.0167790111154+0.0152206514031j), (0.0277570039034+0.0300403907895j), (0.056065287441+0.0806603953242j), (0.118084669113+0.104863211513j), (0.128281414509+0.0677760615945j), (0.0748447552323+0.0619902014732j), (0.0512856245041+0.0775099247694j)) src = blocks.vector_source_s(self.src_data) op = filter.freq_xlating_fir_filter_scf(1, self.taps, self.fc, self.fs) dst = blocks.vector_sink_c() self.tb.connect(src, op, dst) self.tb.run() result_data = dst.data() self.assertComplexTuplesAlmostEqual(expected_data, result_data[-20:], 5)
def test_001(self): src_data = ( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10) trg_data = (-1, -1, 1, 1, -1, -1, 1, 1, -1, -1) src = blocks.vector_source_i(src_data) trg = blocks.vector_source_s(trg_data) op = blocks.burst_tagger(gr.sizeof_int) snk = blocks.tagged_file_sink(gr.sizeof_int, 1) self.tb.connect(src, (op,0)) self.tb.connect(trg, (op,1)) self.tb.connect(op, snk) self.tb.run() # Tagged file sink gets 2 burst tags at index 2 and index 5. # Creates two new files, each with two integers in them from # src_data at these indexes (3,4) and (7,8). file0 = "file{0}_0_2.00000000.dat".format(snk.unique_id()) file1 = "file{0}_1_6.00000000.dat".format(snk.unique_id()) # Open the files and read in the data, then remove the files # to clean up the directory. outfile0 = file(file0, 'rb') outfile1 = file(file1, 'rb') data0 = outfile0.read(8) data1 = outfile1.read(8) outfile0.close() outfile1.close() os.remove(file0) os.remove(file1) # Convert the 8 bytes from the files into a tuple of 2 ints. idata0 = struct.unpack('ii', data0) idata1 = struct.unpack('ii', data1) self.assertEqual(idata0, (3, 4)) self.assertEqual(idata1, (7, 8))
def test_fir_filter_scc_002(self): self.generate_scc_source() expected_data = ( (-0.0080680437386 - 0.00158522999845j), (-0.0037795654498 + 0.00733159901574j), (0.00842926371843 + 0.00777021236718j), (0.0112090632319 - 0.00249325321056j), (-0.0027476802934 - 0.0115710813552j), (-0.0158688724041 - 0.00715934624895j), (-0.00802888441831 + 0.00620818417519j), (0.0131985172629 + 0.0149175003171j), (0.0190298333764 + 0.00956719089299j), (-0.00112380902283 - 0.00936658866704j), (-0.0204226914793 - 0.0333464704454j), (-0.00695514678955 - 0.0437445007265j), (0.0314490310848 - 0.0207983348519j), (0.0529675260186 + 0.0302227605134j), (0.0317338332534 + 0.0667510479689j), (-0.00775565672666 + 0.0437112376094j), (-0.024347923696 - 0.0303014591336j), (-0.0108893103898 - 0.0875638127327j), (0.00204296782613 - 0.0721434056759j), (-0.00527479872108 - 0.00698097236454j)) src = blocks.vector_source_s(self.src_data) op = filter.freq_xlating_fir_filter_scc(4, self.taps, self.fc, self.fs) dst = blocks.vector_sink_c() self.tb.connect(src, op, dst) self.tb.run() result_data = dst.data() self.assertComplexTuplesAlmostEqual(expected_data, result_data[-20:], 5)
def test_fir_filter_scc_001(self): self.generate_scc_source() expected_data = ( (-0.00775564694777 + 0.0437113791704j), (0.0108830630779 + 0.0433648750186j), (0.015553932637 - 0.0133284125477j), (-0.0264905355871 - 0.0403266139328j), (-0.0243480335921 - 0.03030154109j), (-0.000327925226884 - 0.069333948195j), (-0.0306392069906 - 0.107313856483j), (-0.0452371090651 - 0.0854917764664j), (-0.0108894333243 - 0.0875641107559j), (-0.0182112380862 - 0.118961036205j), (-0.0447825863957 - 0.0922874584794j), (-0.0147479763255 - 0.0572904124856j), (0.00204290449619 - 0.0721436738968j), (-0.027713002637 - 0.0548989400268j), (-0.0149045493454 - 0.00210141134448j), (0.0176361314952 - 0.00149522523861j), (-0.00527482619509 - 0.00698099425063j), (-0.0151527002454 + 0.036265052855j), (0.0199296213686 + 0.0452499426901j), (0.0122985243797 + 0.0143278446048j)) src = blocks.vector_source_s(self.src_data) op = filter.freq_xlating_fir_filter_scc(1, self.taps, self.fc, self.fs) dst = blocks.vector_sink_c() self.tb.connect(src, op, dst) self.tb.run() result_data = dst.data() self.assertComplexTuplesAlmostEqual(expected_data, result_data[-20:], 5)
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)
def test_fir_filter_scf_001(self): self.generate_scf_source() expected_data = ( (-0.0330070219934 + 0.101965591311j), (-0.0484239049256 + 0.0872343629599j), (-0.0214109234512 + 0.102555386722j), (0.0484058149159 + 0.0557125210762j), (0.0574690811336 - 0.0350844524801j), (0.0365394353867 - 0.0802438184619j), (0.0453781634569 - 0.130992040038j), (0.00801951438189 - 0.214278846979j), (-0.0770946145058 - 0.230616629124j), (-0.105601429939 - 0.190731987357j), (-0.105361394584 - 0.177761554718j), (-0.131518915296 - 0.136102750897j), (-0.103761836886 - 0.0382263250649j), (-0.0167790111154 + 0.0152206514031j), (0.0277570039034 + 0.0300403907895j), (0.056065287441 + 0.0806603953242j), (0.118084669113 + 0.104863211513j), (0.128281414509 + 0.0677760615945j), (0.0748447552323 + 0.0619902014732j), (0.0512856245041 + 0.0775099247694j)) src = blocks.vector_source_s(self.src_data) op = filter.freq_xlating_fir_filter_scf(1, self.taps, self.fc, self.fs) dst = blocks.vector_sink_c() self.tb.connect(src, op, dst) self.tb.run() result_data = dst.data() self.assertComplexTuplesAlmostEqual(expected_data, result_data[-20:], 5)
def test_fir_filter_scf_002(self): self.generate_scf_source() expected_data = ((0.00824625696987 - 1.50158575707e-05j), (0.0020101047121 - 0.0116540221497j), (-0.0126378880814 - 0.00259830290452j), (-0.00363933457993 + 0.00837504956871j), (0.00107023562305 + 0.00915473792702j), (0.0169738996774 + 0.00422182958573j), (0.00630031805485 - 0.025423232466j), (-0.0283014029264 + 0.00104465708137j), (0.00890890974551 + 0.0115978596732j), (-0.0142687577754 + 0.00306978379376j), (0.02845691517 + 0.0331163145602j), (0.0538152232766 - 0.0908300876617j), (-0.0843691527843 - 0.0956566259265j), (0.0476895272732 + 0.0747984498739j), (0.0898786485195 + 0.082478672266j), (-0.0330070182681 + 0.101965606213j), (0.0574697069824 - 0.0350842289627j), (-0.0770940706134 - 0.230615705252j), (-0.103762261569 - 0.0382265634835j), (0.11808334291 + 0.104863762856j)) src = blocks.vector_source_s(self.src_data) op = filter.freq_xlating_fir_filter_scf(4, self.taps, self.fc, self.fs) dst = blocks.vector_sink_c() self.tb.connect(src, op, dst) self.tb.run() result_data = dst.data() self.assertComplexTuplesAlmostEqual(expected_data, result_data[-20:], 5)
def test001_module_load(self): data = 20 * (100, 200, 300, 400, 500, 600, 700, 800) expected_data = (0, 0, 0, 3, 2, 0, 1, 5, 6, 7, 1, -1, 0, -5, -11, -10, -20, -22, -20, -20, -27, -26, -36, -48, -59, -24, 5, -7, -12, -27, -22, -22, -16, 13, 20, 39, 23, 25, 8, -6, 15, 44, 97, 135, 145, 125, 94, 102, 126, 129, 165, 192, 180, 132, 99, 79, 73, 83, 72, 47, 40, 0, -32, -46, -67, -99, -123, -114, -87, -108, -131, -152, -181, -245, -348, -294, -101, -71, -85, -26, 99, 123, 15, 2, 77, 13, -117, -145, -105, -39, -50, -89, -59, -77, -134, -95, -51, -22, 17, -19, -59, -74, -103, -78, 4, 77, 113, 60, 18, 13, -67, -49, 24, 88, 179, 190, 89, 18, -90, -102, -50, -5, 123, 135, 57, 31, -82, -98, -51, 6, 93, 104, 44, -5, -84, -107, -44, 45, 102, 104, 15, -47, -107, -126, -87, -11, 89, 93, 13, -95, -136, -187, -70, -167, 216, -70, -103, 175, -284, -486) src = blocks.vector_source_s(data) enc = vocoder.codec2_encode_sp() dec = vocoder.codec2_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)
def test_short_to_char(self): src_data = (256, 512, 768, 1024, 1280) expected_data = (1, 2, 3, 4, 5) src = blocks.vector_source_s(src_data) op = blocks.short_to_char() dst = blocks.vector_sink_b() self.tb.connect(src, op, dst) self.tb.run() self.assertEqual(expected_data, dst.data())
def test_interleaved_short_to_complex(self): src_data = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) expected_data = (1 + 2j, 3 + 4j, 5 + 6j, 7 + 8j, 9 + 10j) src = blocks.vector_source_s(src_data) op = blocks.interleaved_short_to_complex() dst = blocks.vector_sink_c() self.tb.connect(src, op, dst) self.tb.run() self.assertEqual(expected_data, dst.data())
def help_ss(self, src_data, exp_data, op): for s in zip(range(len(src_data)), src_data): src = blocks.vector_source_s(s[1]) self.tb.connect(src, (op, s[0])) dst = blocks.vector_sink_s() self.tb.connect(op, dst) self.tb.run() result_data = dst.data() self.assertEqual(exp_data, result_data)
def test_and_const_ss (self): src_data = (1, 2, 3, 0x5004, 0x1150) expected_result = (0, 2, 2, 0x5000, 0x1100) src = blocks.vector_source_s(src_data) op = blocks.and_const_ss (0x55AA) dst = blocks.vector_sink_s() self.tb.connect(src, op, dst) self.tb.run() self.assertEqual(dst.data(), expected_result)
def test_short_to_float_identity(self): src_data = (1, 2, 3, 4, 5) expected_data = (1.0, 2.0, 3.0, 4.0, 5.0) src = blocks.vector_source_s(src_data) op = blocks.short_to_float() dst = blocks.vector_sink_f() self.tb.connect(src, op, dst) self.tb.run() self.assertEqual(expected_data, dst.data())
def help_const_ss(self, src_data, exp_data, op): src = blocks.vector_source_s(src_data) srcv = blocks.stream_to_vector(gr.sizeof_short, len(src_data)) rhs = blocks.vector_to_stream(gr.sizeof_short, len(src_data)) dst = blocks.vector_sink_s() self.tb.connect(src, srcv, op, rhs, dst) self.tb.run() result_data = dst.data() self.assertEqual(exp_data, result_data)
def help_ss (self, src_data, exp_data, op): for s in zip (range (len (src_data)), src_data): src = blocks.vector_source_s (s[1]) self.tb.connect (src, (op, s[0])) dst = blocks.vector_sink_s () self.tb.connect (op, dst) self.tb.run () result_data = dst.data () self.assertEqual (exp_data, result_data)
def test_000_ss(self): src_data = (1, 2, 3, 4, 5, 6) dst_data = (6, 15) src = blocks.vector_source_s(src_data) itg = blocks.integrate_ss(3) dst = blocks.vector_sink_s() self.tb.connect(src, itg, dst) self.tb.run() self.assertEqual(dst_data, dst.data())
def test_short_to_float_scale(self): src_data = (5, 10, 15, 20, 25) expected_data = (1.0, 2.0, 3.0, 4.0, 5.0) src = blocks.vector_source_s(src_data) op = blocks.short_to_float(1, 5) dst = blocks.vector_sink_f() self.tb.connect(src, op, dst) self.tb.run() self.assertEqual(expected_data, dst.data())
def test_and_const_ss(self): src_data = (1, 2, 3, 0x5004, 0x1150) expected_result = (0, 2, 2, 0x5000, 0x1100) src = blocks.vector_source_s(src_data) op = blocks.and_const_ss(0x55AA) dst = blocks.vector_sink_s() self.tb.connect(src, op, dst) self.tb.run() self.assertEqual(dst.data(), expected_result)
def test_interleaved_short_to_complex(self): src_data = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) expected_data = (1+2j, 3+4j, 5+6j, 7+8j, 9+10j) src = blocks.vector_source_s(src_data) op = blocks.interleaved_short_to_complex() dst = blocks.vector_sink_c() self.tb.connect(src, op, dst) self.tb.run() self.assertEqual(expected_data, dst.data())
def test001_module_load (self): data = (0,8,36,72,100,152,228,316,404,528) src = blocks.vector_source_s(data) enc = vocoder.g723_40_encode_sb() dec = vocoder.g723_40_decode_bs() snk = blocks.vector_sink_s() self.tb.connect(src, enc, dec, snk) self.tb.run() actual_result = snk.data() self.assertEqual(data, actual_result)
def test001_module_load(self): data = (0, 16, 36, 40, 68, 104, 148, 220, 320, 512) src = blocks.vector_source_s(data) enc = vocoder.g723_24_encode_sb() dec = vocoder.g723_24_decode_bs() snk = blocks.vector_sink_s() self.tb.connect(src, enc, dec, snk) self.tb.run() actual_result = snk.data() self.assertEqual(data, actual_result)
def test001_module_load (self): data = (8,24,36,52,56,64,76,88,104,124,132,148,172, 196,220,244,280,320,372,416,468,524,580,648) src = blocks.vector_source_s(data) enc = vocoder.g721_encode_sb() dec = vocoder.g721_decode_bs() snk = blocks.vector_sink_s() self.tb.connect(src, enc, dec, snk) self.tb.run() actual_result = snk.data() self.assertEqual(data, actual_result)
def test001_module_load (self): data = (8,24,40,56,72,88,104,120,136,152,168,184, 200,216,232,248,264,280,296,312,328,344) src = blocks.vector_source_s(data) enc = vocoder.alaw_encode_sb() dec = vocoder.alaw_decode_bs() snk = blocks.vector_sink_s() self.tb.connect(src, enc, dec, snk) self.tb.run() actual_result = snk.data() self.assertEqual(data, actual_result)
def test001_module_load(self): data = (8, 24, 36, 52, 56, 64, 76, 88, 104, 124, 132, 148, 172, 196, 220, 244, 280, 320, 372, 416, 468, 524, 580, 648) src = blocks.vector_source_s(data) enc = vocoder.g721_encode_sb() dec = vocoder.g721_decode_bs() snk = blocks.vector_sink_s() self.tb.connect(src, enc, dec, snk) self.tb.run() actual_result = snk.data() self.assertEqual(data, actual_result)
def test001_module_load(self): data = (8, 24, 40, 56, 72, 88, 104, 120, 132, 148, 164, 180, 196, 212, 228, 244, 260, 276, 292, 308, 324, 340) src = blocks.vector_source_s(data) enc = vocoder.ulaw_encode_sb() dec = vocoder.ulaw_decode_bs() snk = blocks.vector_sink_s() self.tb.connect(src, enc, dec, snk) self.tb.run() actual_result = snk.data() self.assertEqual(data, actual_result)
def test001_module_load (self): data = (8,24,40,56,72,88,104,120,132,148,164,180, 196,212,228,244,260,276,292,308,324,340) src = blocks.vector_source_s(data) enc = vocoder.ulaw_encode_sb() dec = vocoder.ulaw_decode_bs() snk = blocks.vector_sink_s() self.tb.connect(src, enc, dec, snk) self.tb.run() actual_result = snk.data() self.assertEqual(data, actual_result)
def test001_module_load(self): data = (8, 24, 40, 56, 72, 88, 104, 120, 136, 152, 168, 184, 200, 216, 232, 248, 264, 280, 296, 312, 328, 344) src = blocks.vector_source_s(data) enc = vocoder.alaw_encode_sb() dec = vocoder.alaw_decode_bs() snk = blocks.vector_sink_s() self.tb.connect(src, enc, dec, snk) self.tb.run() actual_result = snk.data() self.assertEqual(data, actual_result)
def help_ss(self, size, src_data, exp_data, op): for s in zip(range (len (src_data)), src_data): src = blocks.vector_source_s(s[1]) srcv = blocks.stream_to_vector(gr.sizeof_short, size) self.tb.connect(src, srcv) self.tb.connect(srcv, (op, s[0])) rhs = blocks.vector_to_stream(gr.sizeof_short, size) dst = blocks.vector_sink_s() self.tb.connect(op, rhs, dst) self.tb.run() result_data = dst.data() self.assertEqual(exp_data, result_data)
def test_001(self): src_data = [1,2,3,4] expected_result = [256, 512, 768, 1024]; src = blocks.vector_source_s(src_data) op = blocks.endian_swap(2) dst = blocks.vector_sink_s() self.tb.connect(src, op, dst) self.tb.run() result_data = list(dst.data()) self.assertEqual(expected_result, result_data)
def test_sf_006(self): const = [-3, -1, 1, 3] src_data = (0, 1, 2, 3, 3, 2, 1, 0) expected_result = (-3, -1, 1, 3, 3, 1, -1, -3) src = blocks.vector_source_s(src_data) op = digital.chunks_to_symbols_sf(const) dst = blocks.vector_sink_f() self.tb.connect(src, op) self.tb.connect(op, dst) self.tb.run() actual_result = dst.data() self.assertEqual(expected_result, actual_result)
def test_sc_005(self): const = [1 + 0j, 0 + 1j, -1 + 0j, 0 - 1j] src_data = (0, 1, 2, 3, 3, 2, 1, 0) expected_result = (1 + 0j, 0 + 1j, -1 + 0j, 0 - 1j, 0 - 1j, -1 + 0j, 0 + 1j, 1 + 0j) src = blocks.vector_source_s(src_data) op = digital.chunks_to_symbols_sc(const) dst = blocks.vector_sink_c() self.tb.connect(src, op) self.tb.connect(op, dst) self.tb.run() actual_result = dst.data() self.assertEqual(expected_result, actual_result)
def test_sc_005(self): const = [ 1+0j, 0+1j, -1+0j, 0-1j] src_data = (0, 1, 2, 3, 3, 2, 1, 0) expected_result = (1+0j, 0+1j, -1+0j, 0-1j, 0-1j, -1+0j, 0+1j, 1+0j) src = blocks.vector_source_s(src_data) op = digital.chunks_to_symbols_sc(const) dst = blocks.vector_sink_c() self.tb.connect(src, op) self.tb.connect(op, dst) self.tb.run() actual_result = dst.data() self.assertEqual(expected_result, actual_result)
def test_101b(self): random.seed(0) src_data = [] for i in xrange(100): src_data.append((random.randint(-2**15,2**15-1))) src_data = tuple(src_data) expected_results = src_data src = blocks.vector_source_s(tuple(src_data), False) op1 = blocks.packed_to_unpacked_ss(8, gr.GR_LSB_FIRST) op2 = blocks.unpacked_to_packed_ss(8, gr.GR_LSB_FIRST) dst = blocks.vector_sink_s() self.tb.connect(src, op1, op2) self.tb.connect(op2, dst) self.tb.run() self.assertEqual(expected_results, dst.data())
def test_fir_filter_scc_002(self): src_data = 40*[1, 2, 3, 4] expected_data = ((0.5+1j), (5.5+11j), (10.5+21j), (15.5+31j), (20.5+41j), (25.5+51j), (30.5+61j), (35.5+71j), (40.5+81j), (45.5+91j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j)) src = blocks.vector_source_s(src_data) op = filter.fir_filter_scc(4, 20*[0.5+1j, 0.5+1j]) dst = blocks.vector_sink_c() self.tb.connect(src, op, dst) self.tb.run() result_data = dst.data() self.assertComplexTuplesAlmostEqual(expected_data, result_data, 5)
def test_101b(self): random.seed(0) src_data = [] for i in xrange(100): src_data.append((random.randint(-2**15, 2**15 - 1))) src_data = tuple(src_data) expected_results = src_data src = blocks.vector_source_s(tuple(src_data), False) op1 = blocks.packed_to_unpacked_ss(8, gr.GR_LSB_FIRST) op2 = blocks.unpacked_to_packed_ss(8, gr.GR_LSB_FIRST) dst = blocks.vector_sink_s() self.tb.connect(src, op1, op2) self.tb.connect(op2, dst) self.tb.run() self.assertEqual(expected_results, dst.data())
def test_001(self): # Tests calling disconnect/reconnect. port = 65500 n_data = 16 src_data = [x for x in range(n_data)] expected_result = tuple(src_data) src = blocks.vector_source_s(src_data, False) udp_snd = blocks.udp_sink(gr.sizeof_short, 'localhost', port) self.tb_snd.connect(src, udp_snd) self.tb_snd.run() udp_snd.disconnect() udp_snd.connect('localhost', port+1) src.rewind() self.tb_snd.run()
def test_001(self): # Tests calling disconnect/reconnect. port = 65500 n_data = 16 src_data = [x for x in range(n_data)] expected_result = tuple(src_data) src = blocks.vector_source_s(src_data, False) udp_snd = blocks.udp_sink(gr.sizeof_short, 'localhost', port) self.tb_snd.connect(src, udp_snd) self.tb_snd.run() udp_snd.disconnect() udp_snd.connect('localhost', port + 1) src.rewind() self.tb_snd.run()
def test_03(self): tb = self.tb data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0] expected_result = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) src = blocks.vector_source_s(data, False) regen = blocks.peak_detector_sb() dst = blocks.vector_sink_b() tb.connect(src, regen) tb.connect(regen, dst) tb.run() dst_data = dst.data() self.assertEqual(expected_result, dst_data)
def test_fir_filter_scc_001(self): src_data = 40*[1, 2, 3, 4] expected_data = ((0.5+1j), (1.5+3j), (3+6j), (5+10j), (5.5+11j), (6.5+13j), (8+16j), (10+20j), (10.5+21j), (11.5+23j), (13+26j), (15+30j), (15.5+31j), (16.5+33j), (18+36j), (20+40j), (20.5+41j), (21.5+43j), (23+46j), (25+50j), (25.5+51j), (26.5+53j), (28+56j), (30+60j), (30.5+61j), (31.5+63j), (33+66j), (35+70j), (35.5+71j), (36.5+73j), (38+76j), (40+80j), (40.5+81j), (41.5+83j), (43+86j), (45+90j), (45.5+91j), (46.5+93j), (48+96j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j), (50+100j)) src = blocks.vector_source_s(src_data) op = filter.fir_filter_scc(1, 20*[0.5+1j, 0.5+1j]) dst = blocks.vector_sink_c() self.tb.connect(src, op, dst) self.tb.run() result_data = dst.data() self.assertComplexTuplesAlmostEqual(expected_data, result_data, 5)
def test_001(self): src_data = ( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10) trg_data = (-1, -1, 1, 1, -1, -1, 1, 1, -1, -1) src = blocks.vector_source_i(src_data) trg = blocks.vector_source_s(trg_data) op = blocks.burst_tagger(gr.sizeof_int) snk = blocks.tag_debug(gr.sizeof_int, "burst tagger QA") self.tb.connect(src, (op,0)) self.tb.connect(trg, (op,1)) self.tb.connect(op, snk) self.tb.run() x = snk.current_tags() self.assertEqual(2, x[0].offset) self.assertEqual(4, x[1].offset) self.assertEqual(6, x[2].offset) self.assertEqual(8, x[3].offset) self.assertEqual(True, pmt.to_bool(x[0].value)) self.assertEqual(False, pmt.to_bool(x[1].value)) self.assertEqual(True, pmt.to_bool(x[2].value)) self.assertEqual(False, pmt.to_bool(x[3].value))
def test001_module_load (self): data = 20*(100,200,300,400,500,600,700,800) expected_data = (0,0,0,3,2,0,1,5,6,7,1,-1,0,-5,-11,-10,-20,-22, -20,-20,-27,-26,-36,-48,-59,-24,5,-7,-12,-27,-22, -22,-16,13,20,39,23,25,8,-6,15,44,97,135,145,125, 94,102,126,129,165,192,180,132,99,79,73,83,72,47, 40,0,-32,-46,-67,-99,-123,-114,-87,-108,-131,-152, -181,-245,-348,-294,-101,-71,-85,-26,99,123,15,2,77, 13,-117,-145,-105,-39,-50,-89,-59,-77,-134,-95,-51, -22,17,-19,-59,-74,-103,-78,4,77,113,60,18,13,-67, -49,24,88,179,190,89,18,-90,-102,-50,-5,123,135,57, 31,-82,-98,-51,6,93,104,44,-5,-84,-107,-44,45,102,104, 15,-47,-107,-126,-87,-11,89,93,13,-95,-136,-187,-70, -167,216,-70,-103,175,-284,-486) src = blocks.vector_source_s(data) enc = vocoder.codec2_encode_sp() dec = vocoder.codec2_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)
def test_001(self): src_data = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) trg_data = (-1, -1, 1, 1, -1, -1, 1, 1, -1, -1) src = blocks.vector_source_i(src_data) trg = blocks.vector_source_s(trg_data) op = blocks.burst_tagger(gr.sizeof_int) snk = blocks.tag_debug(gr.sizeof_int, "burst tagger QA") self.tb.connect(src, (op, 0)) self.tb.connect(trg, (op, 1)) self.tb.connect(op, snk) self.tb.run() x = snk.current_tags() self.assertEqual(2, x[0].offset) self.assertEqual(4, x[1].offset) self.assertEqual(6, x[2].offset) self.assertEqual(8, x[3].offset) self.assertEqual(True, pmt.to_bool(x[0].value)) self.assertEqual(False, pmt.to_bool(x[1].value)) self.assertEqual(True, pmt.to_bool(x[2].value)) self.assertEqual(False, pmt.to_bool(x[3].value))
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)