diff options
| -rw-r--r-- | test/test_golden.ml | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/test/test_golden.ml b/test/test_golden.ml index 5292427..259b81a 100644 --- a/test/test_golden.ml +++ b/test/test_golden.ml @@ -552,6 +552,72 @@ let test_rg16a_lord_feast_no_sunday_commemoration_2028 () = colour=white comms=[] in=- out=[]" (describe d) +(* Holy Family (RG 17(b), scan-verified, docs/research/rules-register.md + §4/§6.0): "festum S. Familiae Iesu, Mariae, Ioseph, celebrandum dominica + prima post Epiphaniam" -- first Sunday after Epiphany, II class, EVERY + year, taking the Sunday's own place "cum omnibus iuribus et privilegiis" + (RG 17(b)'s own closing clause, the same formula RG 16(a) uses above). + Three shapes, each independently verified against the primary text + BEFORE being typed in here, per this file's own header rule: + + 1. AN ORDINARY YEAR (2026, 11 January): no fixed-date competitor in the + 7-13 January window besides St Hyginus (11 Jan, Class3, + Commemoration_only per data/ef/sanctoral.sexp) -- excluded from the + day's single Sunday slot outright by RG 111(b)'s own rank floor ("de + festo II classis"), the SAME mechanism test_precedence_ef.ml's own + "II-class Sunday admits only a de-festo-II-classis commemoration" pin + already proves for a different date -- so comms=[] is not itself new + ground, only Holy Family's own slug/rank/colour/season are. + `date -d 2026-01-11 +%A` = Sunday, independently confirmed. + 2. THE 13-JANUARY COLLISION (2030, the latest possible date -- Epiphany + itself a Sunday, 6 January): the fixed Commemoration of the Baptism + of the Lord (13 Jan, Class2, subject Lord, data/ef/sanctoral.sexp) + would otherwise contest the day directly, not merely lose a + commemoration slot -- RG 91 entry 14's own "primum mobilia, deinde + fixa" (precedence_ef.ml's own [entry_14_movable_band]) is what keeps + Holy Family observed, and RG 112(a) -- directly confirmed by the Holy + Family Mass propers' own more specific 13-January rubric, both + photographic scans, word for word: "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" -- is what keeps comms=[] rather than admitting the + Baptism as an ordinary Class2 commemoration. `date -d 2030-01-13 + +%A` = Sunday, independently confirmed; 2030 is one of the seven + years in the 2005-2050 window this collision occurs (register §6.0's + own list, test_differential.ml's own C15). + 3. THE EARLIEST POSSIBLE DATE (2024, 7 January -- Epiphany a Saturday): + the OTHER end of RG 17(b)'s own 7-13 January range, proving the + window's own boundary, not only its middle and its latest instance. + No fixed-date competitor exists this early in the window either. + `date -d 2024-01-07 +%A` = Sunday, independently confirmed. + + All three: season=christmastide (RG 72-73's own 1-13 January boundary, + unaffected by Holy Family), week=- (Christmastide carries no numbered + weeks at all, [T.week_origin]'s own [None] case -- unaffected by which + Sunday of it this is), slug=ef-time-after-epiphany-sunday-1 (unchanged + from the plain Sunday key this date always carried -- temporal_ef.ml's + own comment on why RG 17(b) does not need a new lectionary key), rank + =class-2, colour=white. *) +let test_holy_family_ordinary_year_2026 () = + check ~msg:"2026-01-11: Holy Family, ordinary year -- Hyginus (Class3, Commemoration_only) has no \ + standing for the day's II-class-only Sunday slot" + 2026 1 11 + "2026-01-11 sunday season=christmastide week=- slug=ef-time-after-epiphany-sunday-1 rank=class-2 \ + colour=white comms=[] in=- out=[]" + +let test_holy_family_excludes_baptism_2030 () = + check ~msg:"2030-01-13: Holy Family on the latest possible date -- RG91 e14 \"primum mobilia\" keeps it \ + observed over the fixed Baptism, RG112(a) excludes the Baptism entirely, not merely demotes it" + 2030 1 13 + "2030-01-13 sunday season=christmastide week=- slug=ef-time-after-epiphany-sunday-1 rank=class-2 \ + colour=white comms=[] in=- out=[]" + +let test_holy_family_earliest_possible_date_2024 () = + check ~msg:"2024-01-07: Holy Family on the earliest possible date (Epiphany a Saturday)" + 2024 1 7 + "2024-01-07 sunday season=christmastide week=- slug=ef-time-after-epiphany-sunday-1 rank=class-2 \ + colour=white comms=[] in=- out=[]" + (* 2025-02-02, the other real instance of the SAME pattern -- not a contrasting second direction, per this task's fix round 1 (CRITICAL finding, item 1, reverted; see register §6.0 for the full account). @@ -704,6 +770,13 @@ let suite = Alcotest.test_case "RG16(a), the Purification (oracle-ruled): observed outright, the Sunday not commemorated (2025-02-02)" `Quick test_purification_on_a_sunday_2025; + Alcotest.test_case "Holy Family (RG17(b)), ordinary year (2026-01-11)" `Quick + test_holy_family_ordinary_year_2026; + Alcotest.test_case + "Holy Family excludes the Baptism entirely on the latest possible date (RG91 e14 + RG112(a), 2030-01-13)" + `Quick test_holy_family_excludes_baptism_2030; + Alcotest.test_case "Holy Family, earliest possible date (2024-01-07)" `Quick + test_holy_family_earliest_possible_date_2024; Alcotest.test_case "ef-rebootstrap: RG91 entry24 (III-class feast) outranks entry28 (class-4 feria) -- the six dates \ deferred since 2038's own Easter-extreme pin (2008-04-02/04/05, 2038-03-06/08/09)" |
