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