#include "catch2/catch.hpp" #include "Helpers/TimeAndDate.hpp" TEST_CASE("Date comparison", "[operands]") { SECTION("Invalid date") { TimeAndDate InvalidDate0(1900, 2, 2, 4, 5, 6); // error in year TimeAndDate InvalidDate1(2030, 70, 2, 4, 5, 6); // error in month TimeAndDate InvalidDate2(2030, 2, 73, 4, 5, 6); // error in day TimeAndDate InvalidDate3(2030, 2, 2, 74, 5, 6); // error in hour TimeAndDate InvalidDate4(2030, 2, 2, 4, 75, 6); // error in minute TimeAndDate InvalidDate5(2030, 2, 2, 4, 5, 76); // error in seconds } SECTION("Different year") { TimeAndDate Now; // 10/04/2021 10:15:00 Now.year = 2021; Now.month = 4; Now.day = 10; Now.hour = 10; Now.minute = 15; Now.second = 0; TimeAndDate Date; // 10/04/2020 10:15:00 Date.year = 2020; Date.month = 4; Date.day = 10; Date.hour = 10; Date.minute = 15; Date.second = 0; CHECK((Now < Date) == false); CHECK((Now > Date) == true); CHECK((Now > Date) == true); CHECK((Now < Date) == false); CHECK((Now <= Date) == false); CHECK((Now >= Date) == true); CHECK((Now >= Date) == true); CHECK((Now <= Date) == false); CHECK((Now == Date) == false); } SECTION("Different month") { TimeAndDate Now; // 10/05/2020 10:15:00 Now.year = 2020; Now.month = 5; Now.day = 10; Now.hour = 10; Now.minute = 15; Now.second = 0; TimeAndDate Date; // 10/04/2020 10:15:00 Date.year = 2020; Date.month = 4; Date.day = 10; Date.hour = 10; Date.minute = 15; Date.second = 0; CHECK((Now < Date) == false); CHECK((Now > Date) == true); CHECK((Now > Date) == true); CHECK((Now < Date) == false); CHECK((Now <= Date) == false); CHECK((Now >= Date) == true); CHECK((Now >= Date) == true); CHECK((Now <= Date) == false); CHECK((Now == Date) == false); } SECTION("Different day") { TimeAndDate Now; // 11/04/2020 10:15:00 Now.year = 2020; Now.month = 5; Now.day = 11; Now.hour = 10; Now.minute = 15; Now.second = 0; TimeAndDate Date; // 10/04/2020 10:15:00 Date.year = 2020; Date.month = 4; Date.day = 10; Date.hour = 10; Date.minute = 15; Date.second = 0; CHECK((Now < Date) == false); CHECK((Now > Date) == true); CHECK((Now > Date) == true); CHECK((Now < Date) == false); CHECK((Now <= Date) == false); CHECK((Now >= Date) == true); CHECK((Now >= Date) == true); CHECK((Now <= Date) == false); CHECK((Now == Date) == false); } SECTION("Different hour") { TimeAndDate Now; // 10/04/2020 11:15:00 Now.year = 2020; Now.month = 4; Now.day = 10; Now.hour = 11; Now.minute = 15; Now.second = 0; TimeAndDate Date; // 10/04/2020 10:15:00 Date.year = 2020; Date.month = 4; Date.day = 10; Date.hour = 10; Date.minute = 15; Date.second = 0; CHECK((Now < Date) == false); CHECK((Now > Date) == true); CHECK((Now > Date) == true); CHECK((Now < Date) == false); CHECK((Now <= Date) == false); CHECK((Now >= Date) == true); CHECK((Now >= Date) == true); CHECK((Now <= Date) == false); CHECK((Now == Date) == false); } SECTION("Different minute") { TimeAndDate Now; // 10/04/2020 10:16:00 Now.year = 2020; Now.month = 4; Now.day = 10; Now.hour = 10; Now.minute = 16; Now.second = 0; TimeAndDate Date; // 10/04/2020 10:15:00 Date.year = 2020; Date.month = 4; Date.day = 10; Date.hour = 10; Date.minute = 15; Date.second = 0; CHECK((Now < Date) == false); CHECK((Now > Date) == true); CHECK((Now > Date) == true); CHECK((Now < Date) == false); CHECK((Now <= Date) == false); CHECK((Now >= Date) == true); CHECK((Now >= Date) == true); CHECK((Now <= Date) == false); CHECK((Now == Date) == false); } SECTION("Different second") { TimeAndDate Now; // 10/04/2020 10:15:01 Now.year = 2020; Now.month = 4; Now.day = 10; Now.hour = 10; Now.minute = 15; Now.second = 1; TimeAndDate Date; // 10/04/2020 10:15:00 Date.year = 2020; Date.month = 4; Date.day = 10; Date.hour = 10; Date.minute = 15; Date.second = 0; CHECK((Now < Date) == false); CHECK((Now > Date) == true); CHECK((Now > Date) == true); CHECK((Now < Date) == false); CHECK((Now <= Date) == false); CHECK((Now >= Date) == true); CHECK((Now >= Date) == true); CHECK((Now <= Date) == false); CHECK((Now == Date) == false); } SECTION("Same date") { TimeAndDate Now; // 10/04/2020 10:15:01 Now.year = 2020; Now.month = 4; Now.day = 10; Now.hour = 10; Now.minute = 15; Now.second = 0; TimeAndDate Date; // 10/04/2020 10:15:00 Date.year = 2020; Date.month = 4; Date.day = 10; Date.hour = 10; Date.minute = 15; Date.second = 0; CHECK((Now == Date) == true); CHECK((Now <= Date) == true); CHECK((Now >= Date) == true); CHECK((Now >= Date) == true); CHECK((Now <= Date) == true); } }