#include "../test.h"
#define TEST(name) TEST_CASE("time-timegm: " name, "[time-timegm]")
TEST("from data") {
auto dates = get_dates("utc").at("UTC");
for (auto& row : dates) {
auto dt = row.dt;
CHECK(timegm(&dt) == row.epoch);
CHECK(timegml(&row.dt) == row.epoch);
}
}
TEST("normalization") {
auto dt = mkdt(1970,0,1,0,0,-1);
CHECK(timegmll(&dt) == -1);
CHECK_DATETIME(dt, 1970,0,1,0,0,-1);
CHECK(timegml(&dt) == -1);
CHECK_DATETIME(dt, 1970,0,1,0,0,-1);
CHECK(timegm(&dt) == -1);
CHECK_DATETIME(dt, 1969,11,31,23,59,59);
dt = mkdt(1970,234,-4643,2341,-34332,-1213213);
CHECK(timegm(&dt) == 219167267);
CHECK_DATETIME(dt, 1976,11,11,15,47,47);
dt = mkdt(2010,-123,-1234,12345,-123456,-1234567);
CHECK(timegm(&dt) == 867832073);
CHECK_DATETIME(dt, 1997,6,2,8,27,53);
dt = mkdt(2010,-1,0,0,0,0);
CHECK(timegm(&dt) == 1259539200);
CHECK_DATETIME(dt, 2009,10,30,0,0,0);
}