diff options
author | Josh Blum | 2013-06-21 18:45:45 -0700 |
---|---|---|
committer | Josh Blum | 2013-06-21 18:45:45 -0700 |
commit | 90579c89748704dc1d7e9d80120c42988481197c (patch) | |
tree | 2a88275d4ec7e03330d3450bd611592cc026288d /tests | |
parent | d47f192f9edfc2332fa73e6ed6c4c1cdedefb96c (diff) | |
download | sandhi-90579c89748704dc1d7e9d80120c42988481197c.tar.gz sandhi-90579c89748704dc1d7e9d80120c42988481197c.tar.bz2 sandhi-90579c89748704dc1d7e9d80120c42988481197c.zip |
gras: added unit tests for time tags
Diffstat (limited to 'tests')
-rw-r--r-- | tests/CMakeLists.txt | 1 | ||||
-rw-r--r-- | tests/serialize_tags_test.cpp | 9 | ||||
-rw-r--r-- | tests/time_tags_test.py | 74 |
3 files changed, 84 insertions, 0 deletions
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 761239e..bc3815e 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -47,3 +47,4 @@ GR_ADD_TEST(thread_pool_test ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/th GR_ADD_TEST(sbuffer_test ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/sbuffer_test.py) GR_ADD_TEST(query_test ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/query_test.py) GR_ADD_TEST(block_props_test ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/block_props_test.py) +GR_ADD_TEST(time_tags_test ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/time_tags_test.py) diff --git a/tests/serialize_tags_test.cpp b/tests/serialize_tags_test.cpp index 58d9b1e..b4f9ec2 100644 --- a/tests/serialize_tags_test.cpp +++ b/tests/serialize_tags_test.cpp @@ -7,6 +7,7 @@ #include <PMC/PMC.hpp> #include <PMC/Serialize.hpp> #include <gras/tags.hpp> +#include <gras/time_tag.hpp> #include <cstdlib> @@ -65,3 +66,11 @@ BOOST_AUTO_TEST_CASE(test_pkt_msg_type) BOOST_CHECK(pkt_msg.info.eq(result_msg.info)); BOOST_CHECK(std::memcmp(pkt_msg.buff.get(), result_msg.buff.get(), pkt_msg.buff.length) == 0); } + +BOOST_AUTO_TEST_CASE(test_time_tag_type) +{ + const gras::TimeTag t0 = gras::TimeTag::from_ticks(42); + PMCC result = loopback_test(PMC_M(t0)); + const gras::TimeTag &t1 = result.as<gras::TimeTag>(); + BOOST_CHECK(t0 == t1); +} diff --git a/tests/time_tags_test.py b/tests/time_tags_test.py new file mode 100644 index 0000000..7d0221f --- /dev/null +++ b/tests/time_tags_test.py @@ -0,0 +1,74 @@ +# Copyright (C) by Josh Blum. See LICENSE.txt for licensing information. + +import unittest +import gras +import numpy +import time + +class TimeTagsTest(unittest.TestCase): + + def test_make_time_tag(self): + t0 = gras.TimeTag() + + def test_make_time_tag_from_ticks(self): + t0 = gras.TimeTag.from_ticks(42) + self.assertEqual(t0.to_ticks(), 42) + + t1 = gras.TimeTag.from_ticks(1000, 1e9) + self.assertEqual(t1.to_ticks(1e9), 1000) + + t2 = gras.TimeTag.from_ticks(-1000, 1e9) + self.assertEqual(t2.to_ticks(1e9), -1000) + + time_ns_now = long(time.time()*1e9) + t3 = gras.TimeTag.from_ticks(time_ns_now, 1e9) + self.assertEqual(t3.to_ticks(1e9), time_ns_now) + + def test_time_tag_compare(self): + t0 = gras.TimeTag.from_ticks(42) + t1 = gras.TimeTag.from_ticks(-1000) + self.assertEqual(t0, t0) + self.assertEqual(t1, t1) + self.assertGreater(t0, t1) + self.assertLess(t1, t0) + + def test_time_tag_add(self): + t0 = gras.TimeTag.from_ticks(42) + t1 = gras.TimeTag.from_ticks(-1000) + t2 = t0 + t1 + self.assertEqual(t2.to_ticks(), (42 + -1000)) + + t3 = gras.TimeTag.from_ticks(99) + t4 = gras.TimeTag.from_ticks(-98) + t3 += t4 + self.assertEqual(t3.to_ticks(), (99 + -98)) + + def test_time_tag_sub(self): + t0 = gras.TimeTag.from_ticks(42) + t1 = gras.TimeTag.from_ticks(-1000) + t2 = t0 - t1 + self.assertEqual(t2.to_ticks(), (42 + 1000)) + + t3 = gras.TimeTag.from_ticks(99) + t4 = gras.TimeTag.from_ticks(-98) + t3 -= t4 + self.assertEqual(t3.to_ticks(), (99 + 98)) + + def test_time_tag_pmc_foo(self): + time_us_now = long(time.time()*1e6) + t0 = gras.TimeTag.from_ticks(time_us_now, 1e6) + + #test the validity of the time tuple + p0 = t0.to_pmc() + tp = p0() + full = long(time_us_now/1e6) + self.assertEqual(tp[0], full) + delta = time_us_now - full*long(1e6) + self.assertEqual(tp[1], (delta/1e6)) + + #and check if it loops back + t1 = gras.TimeTag.from_pmc(p0) + self.assertEqual(t0, t1) + +if __name__ == '__main__': + unittest.main() |