summaryrefslogtreecommitdiff
path: root/gr-blocks/python
diff options
context:
space:
mode:
authorRuben Undheim <ruben.undheim@gmail.com>2017-04-25 17:36:56 +0000
committerRuben Undheim <ruben.undheim@gmail.com>2017-04-26 19:44:21 +0000
commitf2f09be209ee4394d041b422e5d7375354ca0af3 (patch)
tree4e46c9124c53d415c3d3c853e9c09e688bb52584 /gr-blocks/python
parent082711cc3f7d910e50609695224e7a3c994a4c73 (diff)
blocks: tag_gate (improvements)
- Make it possible to specify a single tag key to look for instead of all tags. - Extended unit test for new functionality - Actually fix a bug which made the unit test do nothing earlier
Diffstat (limited to 'gr-blocks/python')
-rwxr-xr-xgr-blocks/python/blocks/qa_tag_gate.py75
1 files changed, 75 insertions, 0 deletions
diff --git a/gr-blocks/python/blocks/qa_tag_gate.py b/gr-blocks/python/blocks/qa_tag_gate.py
index acb2c68a82..7ae676562e 100755
--- a/gr-blocks/python/blocks/qa_tag_gate.py
+++ b/gr-blocks/python/blocks/qa_tag_gate.py
@@ -40,9 +40,84 @@ class qa_tag_gate (gr_unittest.TestCase):
src = blocks.vector_source_f(range(20), False, 1, (tag,))
gate = blocks.tag_gate(gr.sizeof_float, False)
sink = blocks.vector_sink_f()
+ self.tb.connect(src, gate, sink)
self.tb.run ()
self.assertEqual(len(sink.tags()), 0)
+ def test_002_t (self):
+ tags = []
+ tags.append(gr.tag_t())
+ tags[0].key = pmt.string_to_symbol('key')
+ tags[0].value = pmt.from_long(42)
+ tags[0].offset = 0
+ tags.append(gr.tag_t())
+ tags[1].key = pmt.string_to_symbol('key')
+ tags[1].value = pmt.from_long(42)
+ tags[1].offset = 5
+ tags.append(gr.tag_t())
+ tags[2].key = pmt.string_to_symbol('secondkey')
+ tags[2].value = pmt.from_long(42)
+ tags[2].offset = 6
+ src = blocks.vector_source_f(range(20), False, 1, tags)
+ gate = blocks.tag_gate(gr.sizeof_float, False)
+ gate.set_single_key("key")
+ self.assertEqual(gate.single_key(),"key")
+ sink = blocks.vector_sink_f()
+ self.tb.connect(src, gate, sink)
+ self.tb.run ()
+ self.assertEqual(len(sink.tags()), 1)
+
+ def test_003_t (self):
+ tags = []
+ tags.append(gr.tag_t())
+ tags[0].key = pmt.string_to_symbol('key')
+ tags[0].value = pmt.from_long(42)
+ tags[0].offset = 0
+ tags.append(gr.tag_t())
+ tags[1].key = pmt.string_to_symbol('key')
+ tags[1].value = pmt.from_long(42)
+ tags[1].offset = 5
+ tags.append(gr.tag_t())
+ tags[2].key = pmt.string_to_symbol('secondkey')
+ tags[2].value = pmt.from_long(42)
+ tags[2].offset = 6
+ src = blocks.vector_source_f(range(20), False, 1, tags)
+ gate = blocks.tag_gate(gr.sizeof_float, True)
+ gate.set_single_key("key")
+ sink = blocks.vector_sink_f()
+ self.tb.connect(src, gate, sink)
+ self.tb.run ()
+ self.assertEqual(len(sink.tags()), 3)
+
+ def test_004_t (self):
+ tags = []
+ tags.append(gr.tag_t())
+ tags[0].key = pmt.string_to_symbol('key')
+ tags[0].value = pmt.from_long(42)
+ tags[0].offset = 0
+ tags.append(gr.tag_t())
+ tags[1].key = pmt.string_to_symbol('key')
+ tags[1].value = pmt.from_long(42)
+ tags[1].offset = 5
+ tags.append(gr.tag_t())
+ tags[2].key = pmt.string_to_symbol('secondkey')
+ tags[2].value = pmt.from_long(42)
+ tags[2].offset = 6
+ src = blocks.vector_source_f(range(20), False, 1, tags)
+ gate = blocks.tag_gate(gr.sizeof_float, True)
+ sink = blocks.vector_sink_f()
+ self.tb.connect(src, gate, sink)
+ self.tb.run ()
+ self.assertEqual(len(sink.tags()), 3)
+
+ def test_005_t (self):
+ gate = blocks.tag_gate(gr.sizeof_float, True)
+ self.assertEqual(gate.single_key(), "")
+ gate.set_single_key("the_key")
+ self.assertEqual(gate.single_key(), "the_key")
+ gate.set_single_key("")
+ self.assertEqual(gate.single_key(), "")
+
if __name__ == '__main__':
gr_unittest.run(qa_tag_gate, "qa_tag_gate.xml")