summaryrefslogtreecommitdiff
path: root/gr-digital/python/digital/qa_scrambler.py
diff options
context:
space:
mode:
Diffstat (limited to 'gr-digital/python/digital/qa_scrambler.py')
-rwxr-xr-xgr-digital/python/digital/qa_scrambler.py38
1 files changed, 38 insertions, 0 deletions
diff --git a/gr-digital/python/digital/qa_scrambler.py b/gr-digital/python/digital/qa_scrambler.py
index 05daebd389..4d35879b1f 100755
--- a/gr-digital/python/digital/qa_scrambler.py
+++ b/gr-digital/python/digital/qa_scrambler.py
@@ -21,6 +21,7 @@
#
from gnuradio import gr, gr_unittest, digital, blocks
+import pmt
class test_scrambler(gr_unittest.TestCase):
@@ -60,5 +61,42 @@ class test_scrambler(gr_unittest.TestCase):
self.tb.run()
self.assertEqual(src_data, dst.data())
+ def test_additive_scrambler_reset_3bpb(self):
+ src_data = (5,)*2000
+ src = blocks.vector_source_b(src_data, False)
+ scrambler = digital.additive_scrambler_bb(0x8a, 0x7f, 7, 100, 3)
+ descrambler = digital.additive_scrambler_bb(0x8a, 0x7f, 7, 100, 3)
+ dst = blocks.vector_sink_b()
+ dst2 = blocks.vector_sink_b()
+ self.tb.connect(src, scrambler, descrambler, dst)
+ self.tb.connect(scrambler, dst2)
+ self.tb.run()
+ if not (src_data == dst.data()):
+ self.fail('Not equal.')
+ self.assertEqual(src_data, src_data)
+
+ def test_additive_scrambler_tags(self):
+ src_data = (1,)*1000
+ src = blocks.vector_source_b(src_data, False)
+ scrambler = digital.additive_scrambler_bb(0x8a, 0x7f, 7, 100)
+ descrambler = digital.additive_scrambler_bb(0x8a, 0x7f, 7, 100)
+ reset_tag_key = 'reset_lfsr'
+ reset_tag1 = gr.tag_t()
+ reset_tag1.key = pmt.string_to_symbol(reset_tag_key)
+ reset_tag1.offset = 17
+ reset_tag2 = gr.tag_t()
+ reset_tag2.key = pmt.string_to_symbol(reset_tag_key)
+ reset_tag2.offset = 110
+ reset_tag3 = gr.tag_t()
+ reset_tag3.key = pmt.string_to_symbol(reset_tag_key)
+ reset_tag3.offset = 523
+ src = blocks.vector_source_b(src_data, False, 1, (reset_tag1, reset_tag2, reset_tag3))
+ scrambler = digital.additive_scrambler_bb(0x8a, 0x7f, 7, 100, 1, reset_tag_key)
+ descrambler = digital.additive_scrambler_bb(0x8a, 0x7f, 7, 100, 1, reset_tag_key)
+ dst = blocks.vector_sink_b()
+ self.tb.connect(src, scrambler, descrambler, dst)
+ self.tb.run()
+ self.assertEqual(src_data, dst.data())
+
if __name__ == '__main__':
gr_unittest.run(test_scrambler, "test_scrambler.xml")