summaryrefslogtreecommitdiff
path: root/gr-blocks
diff options
context:
space:
mode:
authorTim O'Shea2012-11-28 19:57:59 -0800
committerJohnathan Corgan2012-11-28 19:59:01 -0800
commit680c889aec7db3b18a8c81c5405ed141f1b078c7 (patch)
tree9cfab297b6a45e1727833dd3dbc5ce9283bb8ecd /gr-blocks
parentff81c844713b5234622ceb906af219a569d0914f (diff)
downloadgnuradio-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.cc8
-rwxr-xr-xgr-blocks/python/qa_patterned_interleaver.py56
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")