summaryrefslogtreecommitdiff
path: root/gr-blocks/python
diff options
context:
space:
mode:
authorJohnathan Corgan <johnathan@corganlabs.com>2017-10-05 15:16:42 -0700
committerJohnathan Corgan <johnathan@corganlabs.com>2017-10-05 15:16:42 -0700
commitbc9da7e07255b9d2af2f66a1a25fc35ce62a4c85 (patch)
treeba42d022abb76fa32028ae6acb176cdb78cbdfde /gr-blocks/python
parent5a99d225cb5422b165c1af7cea484a3ad43a82a4 (diff)
parente9bca98bf6949b710f293a6874dba6f58c979cfb (diff)
Merge remote-tracking branch 'github/pr/1462'
Conflicts: gr-blocks/python/blocks/qa_moving_average.py
Diffstat (limited to 'gr-blocks/python')
-rw-r--r--gr-blocks/python/blocks/qa_moving_average.py47
1 files changed, 24 insertions, 23 deletions
diff --git a/gr-blocks/python/blocks/qa_moving_average.py b/gr-blocks/python/blocks/qa_moving_average.py
index 53b240fe7f..b76f81392d 100644
--- a/gr-blocks/python/blocks/qa_moving_average.py
+++ b/gr-blocks/python/blocks/qa_moving_average.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Copyright 2013 Free Software Foundation, Inc.
+# Copyright 2013,2017 Free Software Foundation, Inc.
#
# This file is part of GNU Radio
#
@@ -96,31 +96,33 @@ class test_moving_average(gr_unittest.TestCase):
def test_03(self):
tb = self.tb
- N = 10000 # number of samples
- history = 100 # num of samples to average
- data = make_random_float_tuple(N, 1) # generate random data
-
- # pythonic MA filter
- data_padded = (history-1)*[0.0]+list(data) # history
- expected_result = []
- moving_sum = sum(data_padded[:history-1])
- for i in range(N):
- moving_sum += data_padded[i+history-1]
- expected_result.append(moving_sum)
- moving_sum -= data_padded[i]
+ vlen = 5
+ N = 10*vlen
+ seed = 0
+ data = make_random_float_tuple(N, 2**10)
+ data = [int(d*1000) for d in data]
+ src = blocks.vector_source_i(data, False)
+ one_to_many = blocks.stream_to_streams(gr.sizeof_int, vlen)
+ one_to_vector = blocks.stream_to_vector(gr.sizeof_int, vlen)
+ many_to_vector = blocks.streams_to_vector(gr.sizeof_int, vlen)
+ isolated = [ blocks.moving_average_ii(100, 1) for i in range(vlen)]
+ dut = blocks.moving_average_ii(100, 1, vlen=vlen)
+ dut_dst = blocks.vector_sink_i(vlen=vlen)
+ ref_dst = blocks.vector_sink_i(vlen=vlen)
+
+ tb.connect(src, one_to_many)
+ tb.connect(src, one_to_vector, dut, dut_dst)
+ tb.connect(many_to_vector, ref_dst)
+ for idx, single in enumerate(isolated):
+ tb.connect((one_to_many,idx), single, (many_to_vector,idx))
- src = blocks.vector_source_f(data, False)
- op = blocks.moving_average_ff(history, 1)
- dst = blocks.vector_sink_f()
-
- tb.connect(src, op)
- tb.connect(op, dst)
tb.run()
-
- dst_data = dst.data()
+
+ dut_data = dut_dst.data()
+ ref_data = ref_dst.data()
# make sure result is close to zero
- self.assertFloatTuplesAlmostEqual(expected_result, dst_data, 4)
+ self.assertTupleEqual(dut_data, ref_data)
def test_04(self):
tb = self.tb
@@ -151,6 +153,5 @@ class test_moving_average(gr_unittest.TestCase):
# make sure result is close to zero
self.assertComplexTuplesAlmostEqual(expected_result, dst_data, 4)
-
if __name__ == '__main__':
gr_unittest.run(test_moving_average, "test_moving_average.xml")