time.cpp (2153B)
1 #include "helper.hpp" 2 3 #include <time.hpp> 4 5 static const char *M = "[time]"; 6 7 TEST_CASE("valid time", M) { 8 const Time time("2016-02-12T01:16:40Z"); 9 REQUIRE(time.year() == 2016); 10 REQUIRE(time.month() == 2); 11 REQUIRE(time.day() == 12); 12 REQUIRE(time.hour() == 1); 13 REQUIRE(time.minute() == 16); 14 REQUIRE(time.second() == 40); 15 REQUIRE(time == Time(2016, 2, 12, 1, 16, 40)); 16 REQUIRE(time.isValid()); 17 REQUIRE(time); 18 } 19 20 TEST_CASE("garbage time string", M) { 21 const Time time("hello world"); 22 REQUIRE_FALSE(time.isValid()); 23 REQUIRE_FALSE(time); 24 REQUIRE(time == Time()); 25 REQUIRE(time.toString() == ""); 26 } 27 28 TEST_CASE("out of range time string", M) { 29 const Time time("2016-99-99T99:99:99Z"); 30 REQUIRE_FALSE(time.isValid()); 31 REQUIRE_FALSE(time); 32 REQUIRE(time == Time()); 33 REQUIRE(time.toString() == ""); 34 } 35 36 TEST_CASE("compare times", M) { 37 SECTION("equality") { 38 REQUIRE(Time(2016,1,2,3,4,5).compare(Time(2016,1,2,3,4,5)) == 0); 39 40 REQUIRE(Time(2016,1,2,3,4,5) == Time(2016,1,2,3,4,5)); 41 REQUIRE_FALSE(Time(2016,1,2,3,4,5) == Time(2016,1,2,3,4)); 42 } 43 44 SECTION("inequality") { 45 REQUIRE_FALSE(Time(2016,1,2,3,4,5) != Time(2016,1,2,3,4,5)); 46 REQUIRE(Time(2016,1,2,3,4,5) != Time(2017,5,4,3,2,1)); 47 } 48 49 SECTION("less than") { 50 REQUIRE(Time(2015, 2, 3).compare(Time(2016, 2, 3)) == -1); 51 52 REQUIRE(Time(2015, 2, 3) < Time(2016, 2, 3)); 53 REQUIRE_FALSE(Time(2016, 2, 3) < Time(2016, 2, 3)); 54 REQUIRE_FALSE(Time(2016, 2, 1) < Time(2015, 2, 2)); 55 } 56 57 SECTION("less than or equal") { 58 REQUIRE(Time(2015, 2, 3) <= Time(2016, 2, 3)); 59 REQUIRE(Time(2016, 2, 3) <= Time(2016, 2, 3)); 60 REQUIRE_FALSE(Time(2016, 2, 1) <= Time(2015, 2, 2)); 61 } 62 63 SECTION("greater than") { 64 REQUIRE(Time(2016, 2, 3).compare(Time(2015, 2, 3)) == 1); 65 66 REQUIRE_FALSE(Time(2015, 2, 30) > Time(2016, 2, 3)); 67 REQUIRE_FALSE(Time(2016, 2, 3) > Time(2016, 2, 3)); 68 REQUIRE(Time(2016, 2, 3) > Time(2015, 2, 3)); 69 } 70 71 SECTION("greater than or equal") { 72 REQUIRE_FALSE(Time(2015, 2, 30) >= Time(2016, 2, 3)); 73 REQUIRE(Time(2016, 2, 3) >= Time(2016, 2, 3)); 74 REQUIRE(Time(2016, 2, 3) >= Time(2015, 2, 3)); 75 } 76 }