clerk/journal/ast/ast_test.go (view raw)
| 1 | package ast |
| 2 | |
| 3 | import "testing" |
| 4 | |
| 5 | func TestDateCompare(t *testing.T) { |
| 6 | jan1 := Date{Year: 2024, Month: 1, Day: 1} |
| 7 | jan2 := Date{Year: 2024, Month: 1, Day: 2} |
| 8 | feb1 := Date{Year: 2024, Month: 2, Day: 1} |
| 9 | nextYear := Date{Year: 2025, Month: 1, Day: 1} |
| 10 | |
| 11 | tests := []struct { |
| 12 | a, b Date |
| 13 | want int |
| 14 | }{ |
| 15 | {jan1, jan1, 0}, |
| 16 | {jan2, jan1, 1}, |
| 17 | {jan1, jan2, -1}, |
| 18 | {feb1, jan2, 1}, |
| 19 | {jan2, feb1, -1}, |
| 20 | {nextYear, feb1, 1}, |
| 21 | {feb1, nextYear, -1}, |
| 22 | } |
| 23 | for _, c := range tests { |
| 24 | if got := c.a.Compare(c.b); got != c.want { |
| 25 | t.Errorf("Compare(%v, %v) = %d, want %d", c.a, c.b, got, c.want) |
| 26 | } |
| 27 | } |
| 28 | } |