|
|
|
@ -149,6 +149,59 @@ TEST(DateTimeTest, LeapYear) { |
|
|
|
|
CreateTimestamp(2400, 3, 1) - CreateTimestamp(2400, 2, 29)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST(DateTimeTest, WrongDays) { |
|
|
|
|
int64 seconds; |
|
|
|
|
DateTime time; |
|
|
|
|
time.hour = 0; |
|
|
|
|
time.minute = 0; |
|
|
|
|
time.second = 0; |
|
|
|
|
time.month = 2; |
|
|
|
|
|
|
|
|
|
// Non-leap year.
|
|
|
|
|
time.year = 2015; |
|
|
|
|
time.day = 29; |
|
|
|
|
ASSERT_FALSE(DateTimeToSeconds(time, &seconds)); |
|
|
|
|
|
|
|
|
|
// Leap year.
|
|
|
|
|
time.year = 2016; |
|
|
|
|
time.day = 29; |
|
|
|
|
ASSERT_TRUE(DateTimeToSeconds(time, &seconds)); |
|
|
|
|
time.day = 30; |
|
|
|
|
ASSERT_FALSE(DateTimeToSeconds(time, &seconds)); |
|
|
|
|
|
|
|
|
|
// Non-leap year.
|
|
|
|
|
time.year = 2100; |
|
|
|
|
time.day = 29; |
|
|
|
|
ASSERT_FALSE(DateTimeToSeconds(time, &seconds)); |
|
|
|
|
|
|
|
|
|
// Leap year.
|
|
|
|
|
time.year = 2400; |
|
|
|
|
time.day = 29; |
|
|
|
|
ASSERT_TRUE(DateTimeToSeconds(time, &seconds)); |
|
|
|
|
time.day = 30; |
|
|
|
|
ASSERT_FALSE(DateTimeToSeconds(time, &seconds)); |
|
|
|
|
|
|
|
|
|
// Non-february
|
|
|
|
|
time.year = 2015; |
|
|
|
|
time.month = 1; |
|
|
|
|
time.day = 0; |
|
|
|
|
ASSERT_FALSE(DateTimeToSeconds(time, &seconds)); |
|
|
|
|
time.day = 1; |
|
|
|
|
ASSERT_TRUE(DateTimeToSeconds(time, &seconds)); |
|
|
|
|
time.day = 31; |
|
|
|
|
ASSERT_TRUE(DateTimeToSeconds(time, &seconds)); |
|
|
|
|
time.day = 32; |
|
|
|
|
ASSERT_FALSE(DateTimeToSeconds(time, &seconds)); |
|
|
|
|
|
|
|
|
|
// Bad month
|
|
|
|
|
time.year = 2015; |
|
|
|
|
time.month = 0; |
|
|
|
|
time.day = 1; |
|
|
|
|
ASSERT_FALSE(DateTimeToSeconds(time, &seconds)); |
|
|
|
|
time.month = 13; |
|
|
|
|
ASSERT_FALSE(DateTimeToSeconds(time, &seconds)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST(DateTimeTest, StringFormat) { |
|
|
|
|
DateTime start, end; |
|
|
|
|
start.year = 1; |
|
|
|
|