9 #include <boost/test/unit_test.hpp>
11 #define BOOST_TEST_MODULE test_hikyuu_datetime
12 #include <boost/test/unit_test.hpp>
15 #include <hikyuu/datetime/Datetime.h>
16 #include <hikyuu/utilities/Null.h>
31 BOOST_CHECK(d == Null<Datetime>());
32 BOOST_CHECK(Null<Datetime>() == d);
33 d = Datetime(201208062359);
34 BOOST_CHECK(d < Null<Datetime>());
37 d = Datetime(Null<unsigned long long>());
38 BOOST_CHECK(d == Null<Datetime>());
41 d = Datetime(200101010110);
43 BOOST_CHECK(Datetime(200101010000) == d);
47 BOOST_CHECK_THROW(Datetime(99999,1,1), std::out_of_range);
48 BOOST_CHECK_THROW(Datetime(000001010000L), std::out_of_range);
51 BOOST_CHECK_THROW(Datetime(2010,13,1), std::out_of_range);
52 BOOST_CHECK_THROW(Datetime(2010,0,1), std::out_of_range);
54 BOOST_CHECK_THROW(Datetime(201013010000L), std::out_of_range);
55 BOOST_CHECK_THROW(Datetime(201000010000L), std::out_of_range);
58 BOOST_CHECK_THROW(Datetime(2010,1,0), std::out_of_range);
59 BOOST_CHECK_THROW(Datetime(2010,1,32), std::out_of_range);
61 BOOST_CHECK_THROW(Datetime(201001000000L), std::out_of_range);
62 BOOST_CHECK_THROW(Datetime(201001320000L), std::out_of_range);
65 BOOST_CHECK_THROW(Datetime(201001012400L), std::out_of_range);
66 BOOST_CHECK_THROW(Datetime(201001012500L), std::out_of_range);
69 BOOST_CHECK_THROW(Datetime(201001010060L), std::out_of_range);
70 BOOST_CHECK_THROW(Datetime(201001010061L), std::out_of_range);
73 d = Datetime(201208062359);
74 BOOST_CHECK(2012 == d.year());
75 BOOST_CHECK(8 == d.month());
76 BOOST_CHECK(6 == d.day());
77 BOOST_CHECK(23 == d.hour());
78 BOOST_CHECK(59 == d.minute());
81 unsigned long long x = d.number();
82 BOOST_CHECK(x == 201208062359);
89 x = Null<unsigned long long>();
91 BOOST_CHECK(x == d.number());
94 d = Datetime(
"2001-Jan-01 06:30:00");
95 BOOST_CHECK(
"2001-Jan-01 06:30:00" == d.toString());
101 BOOST_CHECK(Datetime(200101010000) < Null<Datetime>());
102 BOOST_CHECK(Datetime(200101010000) < Datetime::maxDatetime());
103 BOOST_CHECK(Datetime::minDatetime() < Datetime(200101010000));
104 BOOST_CHECK(Datetime(200101010000) < Datetime(200101020000));