diff options
author | rear1019 <rear1019@posteo.de> | 2020-01-03 13:16:56 +0100 |
---|---|---|
committer | Martin Braun <martin.braun@ettus.com> | 2020-01-03 22:59:59 -0800 |
commit | 5d5d4efcf33d2651a3dcc1fbc3b019cd5f1d25a4 (patch) | |
tree | 44fa891723736da779f25578d18f1a3715c8fb5d /gr-digital/python/digital | |
parent | baebf16b58448b93f7e143bc50ed5d78492658b2 (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.py | 24 |
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 |