aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/test_golden.ml73
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)"