diff options
author | Johannes Demel <ufcsy@student.kit.edu> | 2015-07-20 14:20:23 +0200 |
---|---|---|
committer | Johannes Demel <ufcsy@student.kit.edu> | 2015-07-20 14:23:36 +0200 |
commit | 17194e6ada5eb0313b930e829fbdb40dc2e9ec7e (patch) | |
tree | efa84c610f8e3e6d6b0314c5f0c3764bb1f6f0a2 /gr-fec/python | |
parent | 2dde900700ca2c71de7a16e26c2a435ea5edf75a (diff) |
fec: added tests for extended_encoder input/output conversion.
Diffstat (limited to 'gr-fec/python')
-rw-r--r-- | gr-fec/python/fec/qa_fecapi_dummy.py | 49 |
1 files changed, 48 insertions, 1 deletions
diff --git a/gr-fec/python/fec/qa_fecapi_dummy.py b/gr-fec/python/fec/qa_fecapi_dummy.py index a07890fb84..9471c71d74 100644 --- a/gr-fec/python/fec/qa_fecapi_dummy.py +++ b/gr-fec/python/fec/qa_fecapi_dummy.py @@ -20,9 +20,10 @@ # Boston, MA 02110-1301, USA. # -from gnuradio import gr, gr_unittest +from gnuradio import gr, gr_unittest, blocks import fec_swig as fec from _qa_helper import _qa_helper +import numpy as np from extended_encoder import extended_encoder from extended_decoder import extended_decoder @@ -186,5 +187,51 @@ class test_fecapi_dummy(gr_unittest.TestCase): self.assertRaises(AttributeError, lambda: extended_decoder(dec, threading=threading, puncpat="11")) + def test_extended_pack_data(self): + # test if extended encoder gets correct values for input and output conversion. + n_frames = 10 + frame_size = 32 + + data = np.random.randint(0, 2, n_frames * frame_size) + packed_data = np.packbits(data) + + tb = gr.top_block() + + src = blocks.vector_source_b(data) + snk0 = blocks.vector_sink_b(1) + snk1 = blocks.vector_sink_b(1) + snk2 = blocks.vector_sink_b(1) + snk3 = blocks.vector_sink_b(1) + + packer = blocks.pack_k_bits_bb(8) + tb.connect(src, packer, snk0) + + enc_unpacked = fec.dummy_encoder_make(frame_size, False, False) + ext_enc_unp = extended_encoder(enc_unpacked, threading='none', puncpat='11') + tb.connect(src, ext_enc_unp, snk1) + + enc_pack = fec.dummy_encoder_make(frame_size // 8, True, False) + ext_enc_pack = extended_encoder(enc_pack, threading='none', puncpat='11') + tb.connect(src, ext_enc_pack, snk2) + + enc_packed_bits = fec.dummy_encoder_make(frame_size // 8, False, True) + ext_enc_packed_bits = extended_encoder(enc_packed_bits, threading='none', puncpat='11') + tb.connect(packer, ext_enc_packed_bits, snk3) + + tb.run() + + r0 = snk0.data() + r1 = snk1.data() + r2 = snk2.data() + r3 = snk3.data() + + data = tuple(data) + packed_data = tuple(packed_data) + self.assertTupleEqual(packed_data, r0) + self.assertTupleEqual(data, r1) + self.assertTupleEqual(packed_data, r2) + self.assertTupleEqual(data, r3) + + if __name__ == '__main__': gr_unittest.run(test_fecapi_dummy, "test_fecapi_dummy.xml") |