aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/test_differential.ml13
-rw-r--r--test/test_rite_ef.ml40
2 files changed, 53 insertions, 0 deletions
diff --git a/test/test_differential.ml b/test/test_differential.ml
index a9bdb91..aa75737 100644
--- a/test/test_differential.ml
+++ b/test/test_differential.ml
@@ -450,6 +450,19 @@ let layer_c_reason (l : row) (c : row) diffs =
&& subset diffs [ Slug_f; Rank; Colour_f ]
then Some "C10"
else if String.equal c.slug "ef-passiontide-2-thursday" && diffs = [ Colour_f ] then Some "C11"
+ (* RG16(a) task (register §6.0 + the sanctoral subject audit, this task's
+ own report): 2 February on a Sunday. colitur now observes the Sunday
+ (data/ef/adjustments.sexp retags the Purification `Bvm`, so it no
+ longer bands at RG 91 entry 14 -- only a Feast of the LORD does); the
+ Purification survives as its own commemoration, matching the register's
+ ruling, just not as [c]'s OBSERVED slug here. lectio still tags it
+ `class = lord` (unretagged upstream) and so still observes it outright.
+ Matched on [l.slug] (lectio's side), the only side that can show this
+ literal now -- colitur's own [c.slug] is whichever Sunday family the
+ date falls in (time-after-epiphany or Septuagesima), not one fixed
+ literal, unlike [c7]/[c11]'s single-slug tests above. *)
+ else if String.equal l.slug "purification-of-the-blessed-virgin-mary" && subset diffs [ Slug_f; Colour_f ]
+ then Some "C12"
else None
(* ---------------------------------------------------------------------- *)
diff --git a/test/test_rite_ef.ml b/test/test_rite_ef.ml
index c150a6d..ad9057b 100644
--- a/test/test_rite_ef.ml
+++ b/test/test_rite_ef.ml
@@ -87,6 +87,44 @@ let test_vigil_of_christmas_suppressed () =
Alcotest.(check bool) "vigil-of-christmas appears NOWHERE in the resolved year" false
appears_anywhere
+(* RG16(a) task (register §6.0 + the sanctoral subject audit, this task's
+ own report): data/ef/sanctoral.sexp is left untouched (still a faithful
+ mirror of lectio, subject `Lord` for both entries below -- see
+ test_sanctoral_ef.ml's own "explicit class = lord" spot-check, which
+ loads that file WITHOUT applying this overlay and still passes); the
+ correction lives entirely in data/ef/adjustments.sexp's two [Edit]
+ directives, the same mechanism [test_vigil_of_christmas_suppressed]
+ above already proves for a sibling bootstrap defect. This is the ONE
+ test in the suite that observes the two retags actually take effect
+ through the real pipeline -- without it, a typo in either directive's
+ slug (silently a no-op diagnostic, not a hard failure -- Overlay.apply's
+ own contract) or a reverted adjustments.sexp would leave every other
+ test green (2 February isn't a Sunday in any golden-pinned year, and
+ [test_sanctoral_ef.ml] deliberately never applies the overlay). Also
+ re-verifies the four entries the audit confirmed correct and left
+ untouched, so a future accidental retag of one of THEM would be caught
+ here too, not just the two that changed. *)
+let test_rg16a_subject_retag_in_effect () =
+ let layer = real_layer () in
+ let subject_of slug =
+ match Layer.find layer (Slug.of_string_exn slug) with
+ | Some e -> e.Layer.cel.Cel.subject
+ | None -> Alcotest.failf "slug %s not found in the overlaid layer" slug
+ in
+ Alcotest.(check bool) "Purification retagged Bvm (calendarium: \"B. MARIAE VIRG.\")" true
+ (subject_of "purification-of-the-blessed-virgin-mary" = Subject.Bvm);
+ Alcotest.(check bool) "Most Holy Name of Mary retagged Bvm (calendarium: \"Nominis Mariae\")" true
+ (subject_of "most-holy-name-of-mary" = Subject.Bvm);
+ Alcotest.(check bool) "Precious Blood stays Lord (calendarium: \"D. N. I. C.\") -- audit, not touched" true
+ (subject_of "precious-blood-of-our-lord-jesus-christ" = Subject.Lord);
+ Alcotest.(check bool) "Transfiguration stays Lord (calendarium: \"D. N. I. C.\") -- audit, not touched" true
+ (subject_of "transfiguration-of-our-lord" = Subject.Lord);
+ Alcotest.(check bool) "Exaltation of the Holy Cross stays Lord -- audit, not touched" true
+ (subject_of "exaltation-of-the-holy-cross" = Subject.Lord);
+ Alcotest.(check bool)
+ "Dedication of the Archbasilica of the Most Holy Saviour stays Lord -- audit, not touched" true
+ (subject_of "dedication-of-the-archbasilica-of-our-holy-savior" = Subject.Lord)
+
(* Coordinator review, finding 2, reproduced through the project's OWN
extension path (an overlay), the same way the reviewer found it: adding
an I-class feast on 25 December (competing against, and losing to, the
@@ -255,6 +293,8 @@ let suite =
( "Rite_ef (real data: overlay-in-effect, domain-ceiling)",
[ Alcotest.test_case "the overlay suppression is observably in effect" `Quick
test_vigil_of_christmas_suppressed;
+ Alcotest.test_case "RG16(a) task: the two subject retags are in effect, the other four untouched"
+ `Quick test_rg16a_subject_retag_in_effect;
Alcotest.test_case "RG96 search does not raise at the domain ceiling (real data)" `Quick
test_transfer_search_does_not_raise_at_domain_ceiling;
Alcotest.test_case "no transfer ever lands inside [Easter, Easter+7], 2005-2050" `Quick