diff options
author | Nicholas McCarthy <namccart@gmail.com> | 2014-03-24 20:49:15 -0400 |
---|---|---|
committer | Tom Rondeau <tom@trondeau.com> | 2014-05-17 17:45:11 -0400 |
commit | 8e5eaa8dbe49973bc808dfe4cead2c91b96cb4c6 (patch) | |
tree | 6b31b4fac11cb23c408532da775ec95af3aec745 /gr-blocks/python | |
parent | 9cd145e6c3cd2ca4c2a67e104d227424d09db49c (diff) |
tests for block mode
Diffstat (limited to 'gr-blocks/python')
-rwxr-xr-x | gr-blocks/python/blocks/qa_interleave.py | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/gr-blocks/python/blocks/qa_interleave.py b/gr-blocks/python/blocks/qa_interleave.py index 9eaf87c83c..d2a04cc91c 100755 --- a/gr-blocks/python/blocks/qa_interleave.py +++ b/gr-blocks/python/blocks/qa_interleave.py @@ -49,6 +49,37 @@ class test_interleave (gr_unittest.TestCase): result_data = dst.data () self.assertFloatTuplesAlmostEqual (expected_result, result_data) + def test_int_002 (self): + blksize = 4; + lenx = 64; + plusup_big = lambda a: a + (blksize * 4); + plusup_little = lambda a: a + blksize; + a_vec = range(0,blksize); + for i in range(0,(lenx/(4 * blksize)) - 1): + a_vec += map(plusup_big, a_vec[len(a_vec) - blksize:]); + + b_vec = map(plusup_little, a_vec); + c_vec = map(plusup_little, b_vec); + d_vec = map(plusup_little, c_vec); + + src0 = blocks.vector_source_f (a_vec) + src1 = blocks.vector_source_f (b_vec) + src2 = blocks.vector_source_f (c_vec) + src3 = blocks.vector_source_f (d_vec) + op = blocks.interleave (gr.sizeof_float, blksize) + dst = blocks.vector_sink_f () + + self.tb.connect (src0, (op, 0)) + self.tb.connect (src1, (op, 1)) + self.tb.connect (src2, (op, 2)) + self.tb.connect (src3, (op, 3)) + self.tb.connect (op, dst) + self.tb.run () + expected_result = tuple (range (lenx)) + result_data = dst.data () + + self.assertFloatTuplesAlmostEqual (expected_result, result_data) + def test_deint_001 (self): lenx = 64 src = blocks.vector_source_f (range (lenx)) @@ -75,6 +106,43 @@ class test_interleave (gr_unittest.TestCase): self.assertFloatTuplesAlmostEqual (expected_result2, dst2.data ()) self.assertFloatTuplesAlmostEqual (expected_result3, dst3.data ()) + def test_deint_002 (self): + blksize = 4; + lenx = 64; + src = blocks.vector_source_f (range (lenx)) + op = blocks.deinterleave (gr.sizeof_float, blksize) + dst0 = blocks.vector_sink_f () + dst1 = blocks.vector_sink_f () + dst2 = blocks.vector_sink_f () + dst3 = blocks.vector_sink_f () + + self.tb.connect (src, op) + self.tb.connect ((op, 0), dst0) + self.tb.connect ((op, 1), dst1) + self.tb.connect ((op, 2), dst2) + self.tb.connect ((op, 3), dst3) + self.tb.run () + + plusup_big = lambda a: a + (blksize * 4); + plusup_little = lambda a: a + blksize; + a_vec = range(0,blksize); + for i in range(0,(lenx/(4 * blksize)) - 1): + a_vec += map(plusup_big, a_vec[len(a_vec) - blksize:]); + + b_vec = map(plusup_little, a_vec); + c_vec = map(plusup_little, b_vec); + d_vec = map(plusup_little, c_vec); + + expected_result0 = tuple (a_vec) + expected_result1 = tuple (b_vec) + expected_result2 = tuple (c_vec) + expected_result3 = tuple (d_vec) + + self.assertFloatTuplesAlmostEqual (expected_result0, dst0.data ()) + self.assertFloatTuplesAlmostEqual (expected_result1, dst1.data ()) + self.assertFloatTuplesAlmostEqual (expected_result2, dst2.data ()) + self.assertFloatTuplesAlmostEqual (expected_result3, dst3.data ()) + if __name__ == '__main__': gr_unittest.run(test_interleave, "test_interleave.xml") |