Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00022
00023 #include <icl_core/TimeStamp.h>
00024
00025 using icl_core::TimeStamp;
00026
00027 namespace icl_core {
00028
00029 std::ostream& operator << (std::ostream& os, const TimeStamp& t)
00030 {
00031 return os << t.formatIso8601BasicUTC();
00032 }
00033
00034 }
00035
00036 #include <boost/test/unit_test.hpp>
00037
00038 BOOST_AUTO_TEST_SUITE(ts_TimeStamp)
00039
00040 BOOST_AUTO_TEST_CASE(CheckISO8601RoundTrip)
00041 {
00042 {
00043 TimeStamp t1(0, 0);
00044 TimeStamp t2 = TimeStamp::fromIso8601BasicUTC(t1.formatIso8601BasicUTC());
00045 BOOST_CHECK_EQUAL(t1, t2);
00046 }
00047 {
00048 TimeStamp t1(1000000000, 123456789);
00049 TimeStamp t2 = TimeStamp::fromIso8601BasicUTC(t1.formatIso8601BasicUTC());
00050 BOOST_CHECK_EQUAL(t1, t2);
00051 }
00052 {
00053 TimeStamp t1(2000000000, 12345);
00054 TimeStamp t2 = TimeStamp::fromIso8601BasicUTC(t1.formatIso8601BasicUTC());
00055 BOOST_CHECK_EQUAL(t1, t2);
00056 }
00057 {
00058 TimeStamp t1(2147483647, 999999999);
00059 TimeStamp t2 = TimeStamp::fromIso8601BasicUTC(t1.formatIso8601BasicUTC());
00060 BOOST_CHECK_EQUAL(t1, t2);
00061 }
00062
00063 for (uint64_t secs = 1; secs < 2000000000; secs += 72836471)
00064 {
00065 {
00066 TimeStamp t1(secs, 0);
00067 TimeStamp t2 = TimeStamp::fromIso8601BasicUTC(t1.formatIso8601BasicUTC());
00068 BOOST_CHECK_EQUAL(t1, t2);
00069 }
00070 {
00071 TimeStamp t1(secs, 999999999);
00072 TimeStamp t2 = TimeStamp::fromIso8601BasicUTC(t1.formatIso8601BasicUTC());
00073 BOOST_CHECK_EQUAL(t1, t2);
00074 }
00075 }
00076 }
00077
00078 BOOST_AUTO_TEST_CASE(CheckISO8601UTCConversion)
00079 {
00080 {
00081 std::string s = "19700101T000000,000000000";
00082 TimeStamp t1 = TimeStamp::fromIso8601BasicUTC(s);
00083 TimeStamp t2(0, 0);
00084 BOOST_CHECK_EQUAL(t1, t2);
00085 }
00086 {
00087 std::string s = "20040916T235959,25";
00088 TimeStamp t1 = TimeStamp::fromIso8601BasicUTC(s);
00089 TimeStamp t2(1095379199, 250000000);
00090 BOOST_CHECK_EQUAL(t1, t2);
00091 }
00092 {
00093 std::string s = "20130709T125530,123456789";
00094 TimeStamp t1 = TimeStamp::fromIso8601BasicUTC(s);
00095 TimeStamp t2(1373374530, 123456789);
00096 BOOST_CHECK_EQUAL(t1, t2);
00097 }
00098 {
00099
00100 std::string s = "20380119T031407,999999999";
00101 TimeStamp t1 = TimeStamp::fromIso8601BasicUTC(s);
00102 TimeStamp t2(2147483647, 999999999);
00103 BOOST_CHECK_EQUAL(t1, t2);
00104 }
00105 }
00106
00107 BOOST_AUTO_TEST_SUITE_END()