summaryrefslogtreecommitdiff
path: root/gr-digital/python/digital
diff options
context:
space:
mode:
authorrear1019 <rear1019@posteo.de>2020-01-03 13:16:56 +0100
committerMartin Braun <martin.braun@ettus.com>2020-01-03 22:59:59 -0800
commit5d5d4efcf33d2651a3dcc1fbc3b019cd5f1d25a4 (patch)
tree44fa891723736da779f25578d18f1a3715c8fb5d /gr-digital/python/digital
parentbaebf16b58448b93f7e143bc50ed5d78492658b2 (diff)
additive_scrambler: Add proper test for count based reset
Do not chain two additive scramblers to check whether the reset is performed correctly: A flaw in the reset logic can not be detected this way as the same logic is used both in the scrambler and the descrambler. Instead, check whether the first N elements generated by the scrambler are repeated in the output (where N is the reset count). This test does fail as of this commit; see [1]. [1] https://github.com/gnuradio/gnuradio/issues/2926
Diffstat (limited to 'gr-digital/python/digital')
-rw-r--r--gr-digital/python/digital/qa_scrambler.py24
1 files changed, 10 insertions, 14 deletions
diff --git a/gr-digital/python/digital/qa_scrambler.py b/gr-digital/python/digital/qa_scrambler.py
index 2a2affdb1c..79912cb66c 100644
--- a/gr-digital/python/digital/qa_scrambler.py
+++ b/gr-digital/python/digital/qa_scrambler.py
@@ -64,28 +64,24 @@ class test_scrambler(gr_unittest.TestCase):
self.assertEqual(src_data, dst.data())
def test_additive_scrambler_reset(self):
- src_data = (1,)*1000
+ src_data = (1,)*200
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)
+ scrambler = digital.additive_scrambler_bb(0x8a, 0x7f, 7, 50)
dst = blocks.vector_sink_b()
- self.tb.connect(src, scrambler, descrambler, dst)
+ self.tb.connect(src, scrambler, dst)
self.tb.run()
- self.assertEqual(src_data, dst.data())
+ output = dst.data()
+ self.assertEqual(output[:50] * 4, output)
def test_additive_scrambler_reset_3bpb(self):
- src_data = (5,)*2000
+ src_data = (5,)*200
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)
+ scrambler = digital.additive_scrambler_bb(0x8a, 0x7f, 7, 50, 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.connect(src, scrambler, dst)
self.tb.run()
- if not (src_data == dst.data()):
- self.fail('Not equal.')
- self.assertEqual(src_data, src_data)
+ output = dst.data()
+ self.assertEqual(output[:50] * 4, output)
def test_additive_scrambler_tags(self):
src_data = (1,)*1000