54 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
| 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 
 | |
| } 
 | |
| 
 | |
| 
 |