reapack

Package manager for REAPER
Log | Files | Refs | Submodules | README | LICENSE

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 }