|
@@ -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;
|