diff options
Diffstat (limited to 'internal/calendar/precedence_ef_repro_test.go')
| -rw-r--r-- | internal/calendar/precedence_ef_repro_test.go | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/internal/calendar/precedence_ef_repro_test.go b/internal/calendar/precedence_ef_repro_test.go index 11fd6ca..1408c7c 100644 --- a/internal/calendar/precedence_ef_repro_test.go +++ b/internal/calendar/precedence_ef_repro_test.go @@ -11,6 +11,7 @@ package calendar_test // covered separately, package-internal, in precedence_ef_test.go). import ( + "strings" "testing" "time" @@ -158,3 +159,60 @@ func TestPurificationBeatsFebruarySunday(t *testing.T) { } } } + +// TestEFTwoTransfersDoNotCollide: RG 97/98 -- when an early Easter impedes BOTH +// St Joseph (19 March) and the Annunciation (25 March), each must land on a day +// of its own. Resolving the two walks independently sent both to the Monday +// after Low Sunday, where St Joseph lost pickEF and was observed on NO day of +// 2008, 2035 or 2046 at all. +// +// RG 96(a) fixes the Annunciation's target outright -- "quando est transferendum +// post Pascha, transfertur, tamquam in sedem propriam, in feriam II post +// dominicam in albis" -- so it is not a tie-break: the Annunciation takes the +// Monday by law and St Joseph walks to the Tuesday. +func TestEFTwoTransfersDoNotCollide(t *testing.T) { + for _, c := range []struct{ annunciation, joseph string }{ + {"2008-03-31", "2008-04-01"}, + {"2035-04-02", "2035-04-03"}, + {"2046-04-02", "2046-04-03"}, + } { + for _, w := range []struct{ date, want string }{ + {c.annunciation, "annunciation-of-the-blessed-virgin-mary"}, + {c.joseph, "joseph-spouse-of-the-bl-virgin-mary"}, + } { + got := efCompute(w.date).Observed.Slug + if got != w.want { + t.Errorf("%s observed = %q, want %q", w.date, got, w.want) + } + } + } +} + +// TestEFBaptismOmittedOnHolyFamilySunday: the Holy Family Mass propers, verbatim +// in both photographic scans of the 1962 Missal -- "Si festum S. Familiae +// occurrerit die 13 ianuarii, Missa dicitur de festo S. Familiae, sine +// commemoratione Baptismatis D.N.I.C., et sine commemoratione dominicae." +// +// So on a 13 January that is itself the Sunday after Epiphany the day is the +// Holy Family (Col 3:12-17 / Luke 2:42-52) and the Baptism is omitted OUTRIGHT, +// not commemorated -- Others must be empty of it. lectio previously kept the +// Baptism as the observed office on both such years in 2005-2050. +func TestEFBaptismOmittedOnHolyFamilySunday(t *testing.T) { + for _, y := range []string{"2008", "2013", "2019", "2030", "2036", "2041", "2047"} { + d := efCompute(y + "-01-13") + if d.Observed.Slug != "ef-time-after-epiphany-sunday-1" { + t.Errorf("%s-01-13 observed = %q, want ef-time-after-epiphany-sunday-1 (Holy Family)", y, d.Observed.Slug) + } + for _, o := range d.Others { + if strings.Contains(o.Slug, "baptism") { + t.Errorf("%s-01-13 commemorates %q; the rubric says sine commemoratione Baptismatis", y, o.Slug) + } + } + } + // A 13 January that is NOT the Sunday after Epiphany keeps the Baptism. + for _, y := range []string{"2026", "2035"} { + if got := efCompute(y + "-01-13").Observed.Slug; got != "commemoration-of-the-baptism-of-the-lord" { + t.Errorf("%s-01-13 observed = %q, want commemoration-of-the-baptism-of-the-lord", y, got) + } + } +} |
