import time fn test_is_leap_year() { assert time.is_leap_year(1700) == false assert time.is_leap_year(1800) == false assert time.is_leap_year(1900) == false assert time.is_leap_year(1600) == true assert time.is_leap_year(2000) == true assert time.is_leap_year(2100) == false assert time.is_leap_year(2200) == false assert time.is_leap_year(2300) == false assert time.is_leap_year(1996) == true assert time.is_leap_year(1997) == false } fn check(month, year, expected int) bool { res := time.days_in_month(month, year) or { return false } return res == expected } fn test_days_in_month() { assert check(1, 2001, 31) // January assert check(2, 2001, 28) // February assert check(2, 2000, 29) // February (leap) assert check(3, 2001, 31) // March assert check(4, 2001, 30) // April assert check(5, 2001, 31) // May assert check(6, 2001, 30) // June assert check(7, 2001, 31) // July assert check(8, 2001, 31) // August assert check(9, 2001, 30) // September assert check(10, 2001, 31) // October assert check(11, 2001, 30) // November assert check(12, 2001, 31) // December } fn test_unix() { t := time.unix(1564366499) assert t.year == 2019 assert t.month == 7 assert t.day == 29 assert t.hour == 2 assert t.minute == 14 //assert t.second == 32 // TODO broken }