summaryrefslogtreecommitdiff
path: root/gnuradio-core/src/python
diff options
context:
space:
mode:
authoreb2007-03-02 01:50:03 +0000
committereb2007-03-02 01:50:03 +0000
commit005d44e0e9281152bde0923e3239772d67e4e730 (patch)
treee45f5d00ba3a6165debf13eefb9207a8efa99515 /gnuradio-core/src/python
parent95945638f5d97469ac0a396aeaeb619e6ca1f308 (diff)
downloadgnuradio-005d44e0e9281152bde0923e3239772d67e4e730.tar.gz
gnuradio-005d44e0e9281152bde0923e3239772d67e4e730.tar.bz2
gnuradio-005d44e0e9281152bde0923e3239772d67e4e730.zip
Applied patch from Josh Blum that adds SQUARE, TRIANGLE and SAWTOOTH
waveforms to gr_sig_source* git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@4679 221aa14e-8319-0410-a670-987f0aec2ac5
Diffstat (limited to 'gnuradio-core/src/python')
-rwxr-xr-xgnuradio-core/src/python/gnuradio/gr/qa_sig_source.py72
1 files changed, 72 insertions, 0 deletions
diff --git a/gnuradio-core/src/python/gnuradio/gr/qa_sig_source.py b/gnuradio-core/src/python/gnuradio/gr/qa_sig_source.py
index b985fe02c..7050b20de 100755
--- a/gnuradio-core/src/python/gnuradio/gr/qa_sig_source.py
+++ b/gnuradio-core/src/python/gnuradio/gr/qa_sig_source.py
@@ -80,6 +80,78 @@ class test_sig_source (gr_unittest.TestCase):
fg.run ()
dst_data = dst1.data ()
self.assertFloatTuplesAlmostEqual (expected_result, dst_data, 5)
+
+ def test_sqr_c (self):
+ fg = self.fg #arg6 is a bit before -PI/2
+ expected_result = (1j, 1j, 0, 0, 1, 1, 1+0j, 1+1j, 1j)
+ src1 = gr.sig_source_c (8, gr.GR_SQR_WAVE, 1.0, 1.0)
+ op = gr.head (gr.sizeof_gr_complex, 9)
+ dst1 = gr.vector_sink_c ()
+ fg.connect (src1, op)
+ fg.connect (op, dst1)
+ fg.run ()
+ dst_data = dst1.data ()
+ self.assertEqual (expected_result, dst_data)
+
+ def test_tri_c (self):
+ fg = self.fg
+ expected_result = (1+.5j, .75+.75j, .5+1j, .25+.75j, 0+.5j, .25+.25j, .5+0j, .75+.25j, 1+.5j)
+ src1 = gr.sig_source_c (8, gr.GR_TRI_WAVE, 1.0, 1.0)
+ op = gr.head (gr.sizeof_gr_complex, 9)
+ dst1 = gr.vector_sink_c ()
+ fg.connect (src1, op)
+ fg.connect (op, dst1)
+ fg.run ()
+ dst_data = dst1.data ()
+ self.assertComplexTuplesAlmostEqual (expected_result, dst_data, 5)
+
+ def test_saw_c (self):
+ fg = self.fg
+ expected_result = (.5+.25j, .625+.375j, .75+.5j, .875+.625j, 0+.75j, .125+.875j, .25+1j, .375+.125j, .5+.25j)
+ src1 = gr.sig_source_c (8, gr.GR_SAW_WAVE, 1.0, 1.0)
+ op = gr.head (gr.sizeof_gr_complex, 9)
+ dst1 = gr.vector_sink_c ()
+ fg.connect (src1, op)
+ fg.connect (op, dst1)
+ fg.run ()
+ dst_data = dst1.data ()
+ self.assertComplexTuplesAlmostEqual (expected_result, dst_data, 5)
+
+ def test_sqr_f (self):
+ fg = self.fg
+ expected_result = (0, 0, 0, 0, 1, 1, 1, 1, 0)
+ src1 = gr.sig_source_f (8, gr.GR_SQR_WAVE, 1.0, 1.0)
+ op = gr.head (gr.sizeof_float, 9)
+ dst1 = gr.vector_sink_f ()
+ fg.connect (src1, op)
+ fg.connect (op, dst1)
+ fg.run ()
+ dst_data = dst1.data ()
+ self.assertEqual (expected_result, dst_data)
+
+ def test_tri_f (self):
+ fg = self.fg
+ expected_result = (1, .75, .5, .25, 0, .25, .5, .75, 1)
+ src1 = gr.sig_source_f (8, gr.GR_TRI_WAVE, 1.0, 1.0)
+ op = gr.head (gr.sizeof_float, 9)
+ dst1 = gr.vector_sink_f ()
+ fg.connect (src1, op)
+ fg.connect (op, dst1)
+ fg.run ()
+ dst_data = dst1.data ()
+ self.assertFloatTuplesAlmostEqual (expected_result, dst_data, 5)
+
+ def test_saw_f (self):
+ fg = self.fg
+ expected_result = (.5, .625, .75, .875, 0, .125, .25, .375, .5)
+ src1 = gr.sig_source_f (8, gr.GR_SAW_WAVE, 1.0, 1.0)
+ op = gr.head (gr.sizeof_float, 9)
+ dst1 = gr.vector_sink_f ()
+ fg.connect (src1, op)
+ fg.connect (op, dst1)
+ fg.run ()
+ dst_data = dst1.data ()
+ self.assertFloatTuplesAlmostEqual (expected_result, dst_data, 5)
if __name__ == '__main__':
gr_unittest.main ()