aboutsummaryrefslogtreecommitdiff
path: root/internal/calendar/precedence_ef_repro_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/calendar/precedence_ef_repro_test.go')
-rw-r--r--internal/calendar/precedence_ef_repro_test.go58
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)
+ }
+ }
+}