summaryrefslogtreecommitdiff
path: root/gr-blocks/python
diff options
context:
space:
mode:
authorTom Rondeau <tom@trondeau.com>2014-12-29 13:07:03 -0500
committerTom Rondeau <tom@trondeau.com>2014-12-29 13:07:03 -0500
commitccebbe0a028158df250aae02c1dd893dd1551dda (patch)
tree7fef8be51ce8daea9a27504f8bc9d9396cac4208 /gr-blocks/python
parentd0d286d33d2dd2b1c3f0813a9703f600f692943f (diff)
blocks: added endianness toggle to repack bits.
Diffstat (limited to 'gr-blocks/python')
-rwxr-xr-xgr-blocks/python/blocks/qa_repack_bits_bb.py53
1 files changed, 52 insertions, 1 deletions
diff --git a/gr-blocks/python/blocks/qa_repack_bits_bb.py b/gr-blocks/python/blocks/qa_repack_bits_bb.py
index 10880b196a..50e1506196 100755
--- a/gr-blocks/python/blocks/qa_repack_bits_bb.py
+++ b/gr-blocks/python/blocks/qa_repack_bits_bb.py
@@ -46,6 +46,19 @@ class qa_repack_bits_bb (gr_unittest.TestCase):
self.tb.run ()
self.assertEqual(sink.data(), expected_data)
+ def test_001_simple_msb (self):
+ """ Very simple test, 2 bits -> 1 with MSB set """
+ src_data = (0b11, 0b01, 0b10)
+ expected_data = (0b1, 0b1, 0b0, 0b1, 0b1, 0b0)
+ k = 2
+ l = 1
+ src = blocks.vector_source_b(src_data, False, 1)
+ repack = blocks.repack_bits_bb(k, l, "", False, gr.GR_MSB_FIRST)
+ sink = blocks.vector_sink_b()
+ self.tb.connect(src, repack, sink)
+ self.tb.run ()
+ self.assertEqual(sink.data(), expected_data)
+
def test_002_three (self):
""" 8 -> 3 """
src_data = (0b11111101, 0b11111111, 0b11111111)
@@ -59,6 +72,32 @@ class qa_repack_bits_bb (gr_unittest.TestCase):
self.tb.run ()
self.assertEqual(sink.data(), expected_data)
+ def test_002_three (self):
+ """ 8 -> 3 """
+ src_data = (0b11111101, 0b11111111, 0b11111111)
+ expected_data = (0b101,) + (0b111,) * 7
+ k = 8
+ l = 3
+ src = blocks.vector_source_b(src_data, False, 1)
+ repack = blocks.repack_bits_bb(k, l)
+ sink = blocks.vector_sink_b()
+ self.tb.connect(src, repack, sink)
+ self.tb.run ()
+ self.assertEqual(sink.data(), expected_data)
+
+ def test_002_three_msb (self):
+ """ 8 -> 3 """
+ src_data = (0b11111101, 0b11111111, 0b11111111)
+ expected_data = (0b111,) + (0b111,) + (0b011,) + (0b111,) * 5
+ k = 8
+ l = 3
+ src = blocks.vector_source_b(src_data, False, 1)
+ repack = blocks.repack_bits_bb(k, l, "", False, gr.GR_MSB_FIRST)
+ sink = blocks.vector_sink_b()
+ self.tb.connect(src, repack, sink)
+ self.tb.run ()
+ self.assertEqual(sink.data(), expected_data)
+
def test_003_lots_of_bytes (self):
""" Lots and lots of bytes, multiple packer stages """
src_data = tuple([random.randint(0, 255) for x in range(3*5*7*8 * 10)])
@@ -72,6 +111,19 @@ class qa_repack_bits_bb (gr_unittest.TestCase):
self.tb.run ()
self.assertEqual(sink.data(), src_data)
+ def test_003_lots_of_bytes_msb (self):
+ """ Lots and lots of bytes, multiple packer stages """
+ src_data = tuple([random.randint(0, 255) for x in range(3*5*7*8 * 10)])
+ src = blocks.vector_source_b(src_data, False, 1)
+ repack1 = blocks.repack_bits_bb(8, 3, "", False, gr.GR_MSB_FIRST)
+ repack2 = blocks.repack_bits_bb(3, 5, "", False, gr.GR_MSB_FIRST)
+ repack3 = blocks.repack_bits_bb(5, 7, "", False, gr.GR_MSB_FIRST)
+ repack4 = blocks.repack_bits_bb(7, 8, "", False, gr.GR_MSB_FIRST)
+ sink = blocks.vector_sink_b()
+ self.tb.connect(src, repack1, repack2, repack3, repack4, sink)
+ self.tb.run ()
+ self.assertEqual(sink.data(), src_data)
+
def test_004_three_with_tags (self):
""" 8 -> 3 """
src_data = (0b11111101, 0b11111111)
@@ -112,4 +164,3 @@ class qa_repack_bits_bb (gr_unittest.TestCase):
if __name__ == '__main__':
gr_unittest.run(qa_repack_bits_bb, "qa_repack_bits_bb.xml")
-