summaryrefslogtreecommitdiff
path: root/test/test_differential.ml
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-08-12 12:17:27 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-08-12 12:17:27 +0200
commitcab8b0702b6ba02e1e6293a6e06e77664e1604a1 (patch)
treeb535f923222e19501bc69740168d92f73a643b52 /test/test_differential.ml
parent04f7521a9143d8888d1e29a3e5c2d60eaae56951 (diff)
downloadcolitur-cab8b0702b6ba02e1e6293a6e06e77664e1604a1.tar.gz
colitur-cab8b0702b6ba02e1e6293a6e06e77664e1604a1.zip
data(ef): retag the Purification and Most Holy Name of Mary as BVM, not Lord
Both entries carried (subject Lord) in data/ef/sanctoral.sexp, inherited unchecked from lectio's own class = lord field. The calendarium says otherwise: 2 February reads "IN PURIFICATIONE B. MARIAE VIRG." and 12 September reads "Sanctissimi Nominis Mariae" -- both name Mary, not the Lord, unlike the four genuine Lord entries' own "D. N. I. C." formula (Precious Blood, Transfiguration, Exaltation of the Holy Cross, Dedication of the Archbasilica of the Most Holy Saviour), all of which were checked against the same calendarium and left untouched. This matters together with RG16(a): applying the rule while the Purification was still mistagged Lord would have made it outrank an occurring II-class Sunday and then wrongly suppress that Sunday's own commemoration under RG16(a) too, the opposite of the intended fix. Retagged, the Purification no longer bands at RG91 entry 14, so the Sunday is observed and the Purification survives as its own ordinary commemoration. Corrected via a new data/ef/adjustments.sexp overlay (Set_subject Bvm), the same mechanism that file already uses to suppress vigil-of-christmas as a bootstrap duplicate, not a hand-edit of sanctoral.sexp itself: that file's own header asks for edits to go through the generator, and its SHA-256 provenance covers a byte-faithful mirror of lectio's INI. The Purification retag changes which day the lectio differential observes on 2 February whenever it falls on a Sunday (six years, 2005-2050); allow- listed as C12 in data/ef/expected-divergences.sexp, expected_rows derived independently (date -d <year>-02-02 for each year in range), not transcribed from a comparator run.
Diffstat (limited to 'test/test_differential.ml')
-rw-r--r--test/test_differential.ml13
1 files changed, 13 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
(* ---------------------------------------------------------------------- *)