summaryrefslogtreecommitdiff
path: root/gr-blocks/python
diff options
context:
space:
mode:
authorNicholas McCarthy <namccart@gmail.com>2014-03-24 20:49:15 -0400
committerTom Rondeau <tom@trondeau.com>2014-05-17 17:45:11 -0400
commit8e5eaa8dbe49973bc808dfe4cead2c91b96cb4c6 (patch)
tree6b31b4fac11cb23c408532da775ec95af3aec745 /gr-blocks/python
parent9cd145e6c3cd2ca4c2a67e104d227424d09db49c (diff)
tests for block mode
Diffstat (limited to 'gr-blocks/python')
-rwxr-xr-xgr-blocks/python/blocks/qa_interleave.py68
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")