summaryrefslogtreecommitdiff
path: root/gr-fec/python/fec/qa_fecapi_dummy.py
diff options
context:
space:
mode:
authorJohannes Demel <ufcsy@student.kit.edu>2015-07-20 14:20:23 +0200
committerJohannes Demel <ufcsy@student.kit.edu>2015-07-20 14:23:36 +0200
commit17194e6ada5eb0313b930e829fbdb40dc2e9ec7e (patch)
treeefa84c610f8e3e6d6b0314c5f0c3764bb1f6f0a2 /gr-fec/python/fec/qa_fecapi_dummy.py
parent2dde900700ca2c71de7a16e26c2a435ea5edf75a (diff)
fec: added tests for extended_encoder input/output conversion.
Diffstat (limited to 'gr-fec/python/fec/qa_fecapi_dummy.py')
-rw-r--r--gr-fec/python/fec/qa_fecapi_dummy.py49
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")