X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=gnuradio-core%2Fsrc%2Fpython%2Fgnuradio%2Fgr%2Fqa_iir.py;h=0e522c16b153e8c8b00e25cf520b73bf34e8c59d;hb=2104a9d1b2c964ec0f710f3209bb4a63cc7ae548;hp=a1f2aa0772eed4707b017b2f61d68f7628e7b96c;hpb=5d69a524f81f234b3fbc41d49ba18d6f6886baba;p=debian%2Fgnuradio diff --git a/gnuradio-core/src/python/gnuradio/gr/qa_iir.py b/gnuradio-core/src/python/gnuradio/gr/qa_iir.py index a1f2aa07..0e522c16 100755 --- a/gnuradio-core/src/python/gnuradio/gr/qa_iir.py +++ b/gnuradio-core/src/python/gnuradio/gr/qa_iir.py @@ -1,12 +1,12 @@ #!/usr/bin/env python # -# Copyright 2004 Free Software Foundation, Inc. +# Copyright 2004,2007,2010 Free Software Foundation, Inc. # # This file is part of GNU Radio # # GNU Radio is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) +# the Free Software Foundation; either version 3, or (at your option) # any later version. # # GNU Radio is distributed in the hope that it will be useful, @@ -16,8 +16,8 @@ # # You should have received a copy of the GNU General Public License # along with GNU Radio; see the file COPYING. If not, write to -# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. +# the Free Software Foundation, Inc., 51 Franklin Street, +# Boston, MA 02110-1301, USA. # from gnuradio import gr, gr_unittest @@ -25,10 +25,10 @@ from gnuradio import gr, gr_unittest class test_iir (gr_unittest.TestCase): def setUp (self): - self.fg = gr.flow_graph () + self.tb = gr.top_block () def tearDown (self): - self.fg = None + self.tb = None def test_iir_direct_001 (self): src_data = (1, 2, 3, 4, 5, 6, 7, 8) @@ -38,9 +38,9 @@ class test_iir (gr_unittest.TestCase): src = gr.vector_source_f (src_data) op = gr.iir_filter_ffd (fftaps, fbtaps) dst = gr.vector_sink_f () - self.fg.connect (src, op) - self.fg.connect (op, dst) - self.fg.run () + self.tb.connect (src, op) + self.tb.connect (op, dst) + self.tb.run () result_data = dst.data () self.assertFloatTuplesAlmostEqual (expected_result, result_data) @@ -52,9 +52,9 @@ class test_iir (gr_unittest.TestCase): src = gr.vector_source_f (src_data) op = gr.iir_filter_ffd (fftaps, fbtaps) dst = gr.vector_sink_f () - self.fg.connect (src, op) - self.fg.connect (op, dst) - self.fg.run () + self.tb.connect (src, op) + self.tb.connect (op, dst) + self.tb.run () result_data = dst.data () self.assertFloatTuplesAlmostEqual (expected_result, result_data) @@ -66,9 +66,9 @@ class test_iir (gr_unittest.TestCase): src = gr.vector_source_f (src_data) op = gr.iir_filter_ffd (fftaps, fbtaps) dst = gr.vector_sink_f () - self.fg.connect (src, op) - self.fg.connect (op, dst) - self.fg.run () + self.tb.connect (src, op) + self.tb.connect (op, dst) + self.tb.run () result_data = dst.data () self.assertFloatTuplesAlmostEqual (expected_result, result_data) @@ -80,9 +80,9 @@ class test_iir (gr_unittest.TestCase): src = gr.vector_source_f (src_data) op = gr.iir_filter_ffd (fftaps, fbtaps) dst = gr.vector_sink_f () - self.fg.connect (src, op) - self.fg.connect (op, dst) - self.fg.run () + self.tb.connect (src, op) + self.tb.connect (op, dst) + self.tb.run () result_data = dst.data () self.assertFloatTuplesAlmostEqual (expected_result, result_data) @@ -94,18 +94,13 @@ class test_iir (gr_unittest.TestCase): src = gr.vector_source_f (src_data) op = gr.iir_filter_ffd (fftaps, fbtaps) dst = gr.vector_sink_f () - self.fg.connect (src, op) - self.fg.connect (op, dst) - self.fg.run () + self.tb.connect (src, op) + self.tb.connect (op, dst) + self.tb.run () result_data = dst.data () self.assertFloatTuplesAlmostEqual (expected_result, result_data) def test_iir_direct_006 (self): - fftaps = (2, 11, 0) - fbtaps = (0, -1) - self.assertRaises ((RuntimeError, ValueError), gr.iir_filter_ffd, fftaps, fbtaps) - - def test_iir_direct_007 (self): src_data = (1, 2, 3, 4, 5, 6, 7, 8) expected_result = (2, 13, 21, 59, 58, 186, 68, 583) fftaps = (2, 1) @@ -116,20 +111,49 @@ class test_iir (gr_unittest.TestCase): fbtaps = (0, -1, 3) op.set_taps (fftaps, fbtaps) dst = gr.vector_sink_f () - self.fg.connect (src, op) - self.fg.connect (op, dst) - self.fg.run () + self.tb.connect (src, op) + self.tb.connect (op, dst) + self.tb.run () result_data = dst.data () self.assertFloatTuplesAlmostEqual (expected_result, result_data) - def test_iir_direct_008 (self): + def test_iir_direct_007 (self): + src_data = (1, 2, 3, 4, 5, 6, 7, 8) + expected_result = (2,2,5,5,8,8,11,11) fftaps = (2, 1) fbtaps = (0, -1) + src = gr.vector_source_f (src_data) op = gr.iir_filter_ffd (fftaps, fbtaps) - fftaps = (2, 11) - fbtaps = (0, -1, 3) - self.assertRaises ((RuntimeError, ValueError), op.set_taps, fftaps, fbtaps) + fftaps = (2,0,1) + fbtaps = (0, -1) + op.set_taps (fftaps, fbtaps) + dst = gr.vector_sink_f () + self.tb.connect (src, op) + self.tb.connect (op, dst) + self.tb.run () + result_data = dst.data () + self.assertFloatTuplesAlmostEqual (expected_result, result_data) + + def test_iir_direct_008 (self): + src_data = (1, 2, 3, 4, 5, 6, 7, 8) + expected_result = (2,4,4,10,18,14,26,56) + fftaps = (2,) + fbtaps = (0, 1) + src = gr.vector_source_f (src_data) + op = gr.iir_filter_ffd (fftaps, fbtaps) + fftaps_data = (1) + fbtaps = (0,0, -1,3) + op.set_taps (fftaps, fbtaps) + dst = gr.vector_sink_f () + self.tb.connect (src, op) + self.tb.connect (op, dst) + self.tb.run () + result_data = dst.data () + self.assertFloatTuplesAlmostEqual (expected_result, result_data) + + + if __name__ == '__main__': - gr_unittest.main () + gr_unittest.run(test_iir, "test_iir.xml")