summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJosh Blum2013-06-21 18:45:45 -0700
committerJosh Blum2013-06-21 18:45:45 -0700
commit90579c89748704dc1d7e9d80120c42988481197c (patch)
tree2a88275d4ec7e03330d3450bd611592cc026288d /tests
parentd47f192f9edfc2332fa73e6ed6c4c1cdedefb96c (diff)
downloadsandhi-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.txt1
-rw-r--r--tests/serialize_tags_test.cpp9
-rw-r--r--tests/time_tags_test.py74
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()