#ifdef WITH_TESTS #include "../Tests.h" #include "../../data/Timestamp.h" TEST(Timestamp, convert) { Timestamp ts1 = Timestamp::fromMS(100); ASSERT_EQ(100, ts1.ms()); ASSERT_NEAR(0.1, ts1.sec(), 0.00001); Timestamp ts2 = Timestamp::fromSec(0.1); ASSERT_EQ(100, ts2.ms()); ASSERT_NEAR(0.1, ts2.sec(), 0.00001); } TEST(Timestamp, equal) { Timestamp ts1 = Timestamp::fromMS(100); Timestamp ts2 = Timestamp::fromSec(0.1); ASSERT_EQ(ts1, ts2); } TEST(Timestamp, comp) { Timestamp ts1 = Timestamp::fromMS(100); Timestamp ts2 = Timestamp::fromSec(0.1); Timestamp ts3 = Timestamp::fromSec(150); ASSERT_FALSE(ts1 < ts2); ASSERT_FALSE(ts1 > ts2); ASSERT_TRUE(ts1 < ts3); ASSERT_FALSE(ts1 > ts3); ASSERT_TRUE(ts3 > ts1); ASSERT_FALSE(ts3 < ts1); } TEST(Timestamp, add) { Timestamp ts1 = Timestamp::fromMS(100); Timestamp ts2 = Timestamp::fromSec(0.2); ASSERT_EQ(300, (ts1+ts2).ms()); ASSERT_EQ(-100, (ts1-ts2).ms()); ASSERT_EQ(+100, (ts2-ts1).ms()); } TEST(Timestamp, div) { Timestamp ts1 = Timestamp::fromMS(1000); ASSERT_EQ(100, (ts1/(size_t)10).ms()); } TEST(Timestamp, minmax) { Timestamp tsLow = std::numeric_limits::lowest(); Timestamp tsMin = std::numeric_limits::min(); Timestamp tsMax = std::numeric_limits::max(); Timestamp ts0 = Timestamp::fromMS(0); Timestamp tsNeg = Timestamp::fromMS(-99999999999999L); Timestamp tsPos = Timestamp::fromMS(+99999999999999L); ASSERT_EQ(tsMin, tsLow); ASSERT_TRUE(tsMin < tsMax); ASSERT_TRUE(tsMin < ts0); ASSERT_TRUE(tsMin < tsNeg); ASSERT_TRUE(tsMax > tsMin); ASSERT_TRUE(tsMax > ts0); ASSERT_TRUE(tsMax > tsPos); } #endif