diff options
Diffstat (limited to 'test/test_rite_of.ml')
| -rw-r--r-- | test/test_rite_of.ml | 65 |
1 files changed, 38 insertions, 27 deletions
diff --git a/test/test_rite_of.ml b/test/test_rite_of.ml index 42c9c98..1de3614 100644 --- a/test/test_rite_of.ml +++ b/test/test_rite_of.ml @@ -373,21 +373,32 @@ let test_holy_family_fallback_1583_now_correct () = worked example that amendment header itself names (Easter 24 April 2011, so Easter+50 = 13 June -- re-derived here, not trusted from the comment). - KNOWN ARBITRARY, not KNOWN WRONG: unlike the two tests above, there is no - rubric this contradicts. The 2018 decree (AAS 110, 437-438) is silent on - a universal-calendar coincidence with an existing obligatory memorial, and - Normae n. 14's own third clause resolves only the AD-LIBITUM/AD-LIBITUM - case ("Si eodem die plures inscribuntur in calendario memoriae ad - libitum") -- it does not reach two OBLIGATORY memorials. So colitur's - Slug.compare tie-break ("anthony-of-padua-priest-and-doctor" sorts before - "mary-mother-of-the-church") is not this project inventing a rule; it is - the kernel's own generic, rite-agnostic fallback, applied here for lack of - a rite-specific one. This test pins that CURRENT behaviour so a future - Calendar/kernel change, a slug rename, or a future overlay cannot flip - which of the two is observed with no test going red -- the same shape of - invisible-drift risk the EF side's RG 113/[band] fidelity work (`ef-rg16a`, - register ยง6.1) eliminated on that side. *) -let test_mater_ecclesiae_anthony_tie_2011_known_arbitrary () = + RESOLVED (W3, of-known-wrongs, 2026-08-26) ON A RUBRIC, NOT COLITUR'S OWN + JUDGEMENT -- this test used to pin the OPPOSITE outcome ("KNOWN + ARBITRARY", the kernel's generic alphabetical Slug.compare tie-break, + for lack of anything rite-specific). That framing is now WRONG, not + merely superseded: colitur's own two previously-checked primary sources + really are silent (the 2018 decree, AAS 110, 437-438, on universal- + calendar coincidence; Normae n. 14's third clause, which resolves only + the AD-LIBITUM/AD-LIBITUM case, "Si eodem die plures inscribuntur in + calendario memoriae ad libitum") -- but a THIRD primary source, found by + searching the corpus rather than invented, does resolve it: the CDWDS's + own "Notification on the Memorial of the Blessed Virgin Mary, Mother of + the Church" (24 March 2018, same dicastery and signatories as the decree; + published only on vatican.va, confirmed absent from the AAS 2018 + combined index) states plainly that when this memorial "coincides with + another Memorial of a Saint or Blessed... the Memorial of the Blessed + Virgin Mary is to prevail." See {!Rite_of.Precedence_of.movable_bvm_ + memorials}'s own comment for the full Latin, the official English, and + why the same rule also covers the Immaculate Heart of Mary (the + Notification names both, by the identical link-to-a-Lord's-solemnity + argument). {!Rite_of.Precedence_of.band} now gives both a sub-rank of + 95, strictly between Tabula entries 9 and 10, so this is no longer a + coin-flip the kernel settles for lack of a rite rule -- it is the rite + rule, cited. This test still pins CURRENT behaviour, for the identical + invisible-drift reason the original comment gave; what changed is which + behaviour is correct to pin. *) +let test_mater_ecclesiae_anthony_tie_2011_resolved () = let easter_2011 = Computus.gregorian_easter 2011 in Alcotest.(check string) "2011 Easter is really 24 April (the Easter+50 trigger)" "2011-04-24" (Date.to_iso8601 easter_2011); @@ -404,18 +415,18 @@ let test_mater_ecclesiae_anthony_tie_2011_known_arbitrary () = let days = Cal.year real_of_rite real_of_layer 2010 in let june13 = Array.to_list days |> List.find (fun d -> Date.compare d.LD.date tie_date = 0) in Alcotest.(check string) - "KNOWN ARBITRARY (no rubric decides this; see this test's own header): the kernel's generic \ - alphabetical tie-break observes Anthony of Padua, not Mary Mother of the Church" - "anthony-of-padua-priest-and-doctor" (slug_of june13.LD.observed); - let mater_ecclesiae_omitted = - List.exists (fun (c, _) -> slug_of c = "mary-mother-of-the-church") june13.LD.omitted + "RESOLVED (W3): the CDWDS's own 24 March 2018 Notification (see this test's own header) makes \ + Mary, Mother of the Church prevail, not Anthony of Padua" + "mary-mother-of-the-church" (slug_of june13.LD.observed); + let anthony_omitted = + List.exists (fun (c, _) -> slug_of c = "anthony-of-padua-priest-and-doctor") june13.LD.omitted in Alcotest.(check bool) - "and Mary, Mother of the Church is recorded in `omitted`, not silently dropped -- {!Colitur_kernel \ + "and Anthony of Padua is recorded in `omitted`, not silently dropped -- {!Colitur_kernel \ .Liturgical_day.t.omitted}'s own contract" - true mater_ecclesiae_omitted; - Alcotest.(check bool) "she carries no commemoration either (OF's own admit always returns [])" false - (List.exists (fun (c, _) -> slug_of c = "mary-mother-of-the-church") june13.LD.commemorations) + true anthony_omitted; + Alcotest.(check bool) "he carries no commemoration either (OF's own admit always returns [])" false + (List.exists (fun (c, _) -> slug_of c = "anthony-of-padua-priest-and-doctor") june13.LD.commemorations) let suite = ( "Rite_of (real data: assembled Rite.t end-to-end via Calendar/Validate)", @@ -434,6 +445,6 @@ let suite = Day is a Sunday (1583)" `Quick test_holy_family_fallback_1583_now_correct; Alcotest.test_case - "KNOWN ARBITRARY pinned: Mary Mother of the Church vs Anthony of Padua tie, 2011-06-13 \ - (Easter+50)" `Quick - test_mater_ecclesiae_anthony_tie_2011_known_arbitrary ] ) + "RESOLVED (W3): Mary Mother of the Church beats Anthony of Padua's tie, 2011-06-13 \ + (Easter+50), per the CDWDS's 24 March 2018 Notification" `Quick + test_mater_ecclesiae_anthony_tie_2011_resolved ] ) |
