mothering_sunday_ical/main_test.go
2026-02-11 08:53:22 +00:00

34 lines
1 KiB
Go

package main
import (
"testing"
"time"
)
type testDatum struct {
year int
date time.Time
}
func TestMotheringSunday(t *testing.T) {
testData := []testDatum{
{1931, time.Date(1931, 03, 15, 0, 0, 0, 0, time.UTC)},
{1950, time.Date(1950, 03, 19, 0, 0, 0, 0, time.UTC)},
{1977, time.Date(1977, 03, 20, 0, 0, 0, 0, time.UTC)},
{2000, time.Date(2000, 04, 02, 0, 0, 0, 0, time.UTC)},
{2005, time.Date(2005, 03, 06, 0, 0, 0, 0, time.UTC)},
{2020, time.Date(2020, 03, 22, 0, 0, 0, 0, time.UTC)},
{2021, time.Date(2021, 03, 14, 0, 0, 0, 0, time.UTC)},
{2022, time.Date(2022, 03, 27, 0, 0, 0, 0, time.UTC)},
{2023, time.Date(2023, 03, 19, 0, 0, 0, 0, time.UTC)},
{2032, time.Date(2032, 03, 07, 0, 0, 0, 0, time.UTC)},
{2034, time.Date(2034, 03, 19, 0, 0, 0, 0, time.UTC)},
}
for _, datum := range testData {
md, err := motheringSunday(datum.year)
if err != nil || !md.Equal(datum.date) {
t.Errorf(`motheringSunday(%d) = (%q, %v) should be (%q, <nil>)`, datum.year, md, err, &datum.date)
}
}
}