diff options
author | Johnathan Corgan <johnathan@corganlabs.com> | 2017-03-27 14:20:09 -0700 |
---|---|---|
committer | Johnathan Corgan <johnathan@corganlabs.com> | 2017-03-27 14:20:09 -0700 |
commit | 1ee3e3a1cb18f9e2df57983e615e8a5680515bc5 (patch) | |
tree | 5c3c0b64fd4f002b96214580e7ec4afe50d0b7f3 /gr-blocks/python | |
parent | b3b63be28857d04004a337b7c0bebfad06bc2e7c (diff) | |
parent | c01ac41eed33130521812f88005b6b7123ae24dc (diff) |
Merge branch 'next' into python3
Diffstat (limited to 'gr-blocks/python')
-rw-r--r-- | gr-blocks/python/blocks/qa_exponentiate_const_cci.py | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/gr-blocks/python/blocks/qa_exponentiate_const_cci.py b/gr-blocks/python/blocks/qa_exponentiate_const_cci.py new file mode 100644 index 0000000000..0c4b65eb68 --- /dev/null +++ b/gr-blocks/python/blocks/qa_exponentiate_const_cci.py @@ -0,0 +1,66 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# Copyright 2017 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 +from gnuradio import blocks +import pmt + +class qa_exponentiate_const_cci(gr_unittest.TestCase): + + def setUp(self): + self.tb = gr.top_block() + + def tearDown(self): + self.tb = None + + def test_001_t(self): + for exponent in range(1,10): + in_data = (1+1j, -1, 4-1j, -3-7j) + out_data = (in_data[0]**exponent, in_data[1]**exponent, in_data[2]**exponent, in_data[3]**exponent) + + # Test streaming input + source = blocks.vector_source_c(in_data, False, 1) + exponentiate_const_cci = blocks.exponentiate_const_cci(exponent) + sink = blocks.vector_sink_c(1) + + self.tb.connect(source, exponentiate_const_cci, sink) + self.tb.run() + + self.assertAlmostEqual(sink.data(), out_data) + + # Test vector input + for vlen in [2, 4]: + source = blocks.vector_source_c(in_data, False, 1) + s2v = blocks.stream_to_vector(gr.sizeof_gr_complex, vlen) + exponentiate_const_cci = blocks.exponentiate_const_cci(exponent, vlen) + v2s = blocks.vector_to_stream(gr.sizeof_gr_complex, vlen) + sink = blocks.vector_sink_c(1) + + self.tb.connect(source, s2v, exponentiate_const_cci, v2s, sink) + self.tb.run() + + self.assertAlmostEqual(sink.data(), out_data) + + +if __name__ == '__main__': + gr_unittest.run(qa_exponentiate_const_cci, 'qa_exponentiate_const_cci.xml') |