diff options
author | Tim O'Shea | 2012-11-28 19:57:59 -0800 |
---|---|---|
committer | Johnathan Corgan | 2012-11-28 19:59:01 -0800 |
commit | 680c889aec7db3b18a8c81c5405ed141f1b078c7 (patch) | |
tree | 9cfab297b6a45e1727833dd3dbc5ce9283bb8ecd /gr-blocks | |
parent | ff81c844713b5234622ceb906af219a569d0914f (diff) | |
download | gnuradio-680c889aec7db3b18a8c81c5405ed141f1b078c7.tar.gz gnuradio-680c889aec7db3b18a8c81c5405ed141f1b078c7.tar.bz2 gnuradio-680c889aec7db3b18a8c81c5405ed141f1b078c7.zip |
patterned qa added, bugs fixed
Diffstat (limited to 'gr-blocks')
-rw-r--r-- | gr-blocks/lib/patterned_interleaver_impl.cc | 8 | ||||
-rwxr-xr-x | gr-blocks/python/qa_patterned_interleaver.py | 56 |
2 files changed, 60 insertions, 4 deletions
diff --git a/gr-blocks/lib/patterned_interleaver_impl.cc b/gr-blocks/lib/patterned_interleaver_impl.cc index c53ba03d7..437c733a1 100644 --- a/gr-blocks/lib/patterned_interleaver_impl.cc +++ b/gr-blocks/lib/patterned_interleaver_impl.cc @@ -63,14 +63,14 @@ namespace gr { for(size_t i=0; i<nblks; i++){ for(size_t j=0; j<d_pattern.size(); j++){ - memcpy(oo, ii[j], d_itemsize); + memcpy(oo, ii[d_pattern[j]], d_itemsize); oo += d_itemsize; - ii[j] += d_itemsize; + ii[d_pattern[j]] += d_itemsize; } } - for(size_t i=0; i<d_pattern.size(); i++){ - consume(i, d_pattern[i]*nblks ); + for(size_t i=0; i<d_counts.size(); i++){ + consume(i, d_counts[i]*nblks ); } return nblks*d_pattern.size(); } diff --git a/gr-blocks/python/qa_patterned_interleaver.py b/gr-blocks/python/qa_patterned_interleaver.py new file mode 100755 index 000000000..1dc9a0d90 --- /dev/null +++ b/gr-blocks/python/qa_patterned_interleaver.py @@ -0,0 +1,56 @@ +#!/usr/bin/env python +# +# Copyright 2008,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 3, or (at your option) +# any later version. +# +# GNU Radio is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# 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., 51 Franklin Street, +# Boston, MA 02110-1301, USA. +# + +from gnuradio import gr, gr_unittest +try: + import blocks_swig +except: + from gnuradio import blocks +import math + +class test_patterned_interleaver (gr_unittest.TestCase): + + def setUp (self): + self.tb = gr.top_block () + + def tearDown (self): + self.tb = None + + def test_000(self): + dst_data = [0,0,1,2,0,2,1,0]; + src0 = gr.vector_source_f(200*[0]) + src1 = gr.vector_source_f(200*[1]) + src2 = gr.vector_source_f(200*[2]) + itg = blocks.patterned_interleaver(gr.sizeof_float, dst_data) + dst = gr.vector_sink_f() + head = gr.head(gr.sizeof_float, 8); + + self.tb.connect( src0, (itg,0) ); + self.tb.connect( src1, (itg,1) ); + self.tb.connect( src2, (itg,2) ); + self.tb.connect( itg, head, dst ); + + self.tb.run() + self.assertEqual(list(dst_data), list(dst.data())) + +if __name__ == '__main__': + gr_unittest.run(test_patterned_interleaver, "test_patterned_interleaver.xml") |