diff options
| author | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-08-26 23:45:16 +0200 |
|---|---|---|
| committer | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-08-26 23:45:16 +0200 |
| commit | 9ebb06983b7a26db5564302253f2551dfbcf834e (patch) | |
| tree | f73de5c193a13239258d062ca5f4caf64ba64dbe /data/of | |
| parent | 2f6d25aff88b4c76c61e36889f1c017b3cc8faee (diff) | |
| download | colitur-9ebb06983b7a26db5564302253f2551dfbcf834e.tar.gz colitur-9ebb06983b7a26db5564302253f2551dfbcf834e.zip | |
fix(of): dispatch Holy Family's Normae n.35(a) fallback (W2)
temporal_of.ml's temporal only ever reached holy_family's own correct
26-31 December / 30 December fallback logic through sunday_slug, which
returns None immediately for a non-Sunday date. In a year 25 December
is itself a Sunday (26-31 December then holding no Sunday of its own),
the feast vanished entirely and fell through to an ordinary Christmas
ferial slug -- confirmed on 2022, 2033, 2039, 2044, 2050 (and roughly
1583..9999 domain-wide, one year in seven).
temporal's dispatch now consults holy_family directly, independent of
weekday, between the sunday_slug and christmas_feria_slug branches,
carrying the identical identity the Sunday case already builds
(subject Lord, holy_family_names, rank Festum). holy_family and
anchors were already correct and needed no change.
Added a direct example-based test for the fallback across five
affected years plus a control for the unaffected Sunday case, and a
domain-wide property (Holy Family is observed in every liturgical
year 1583-9999) folded into both the 200-sample QCheck run and the
exhaustive sweep -- the property that would have caught this directly.
Un-pinned the now-fixed behaviour everywhere it was recorded as
known-wrong: test_rite_of.ml's own 1583 pin (rewritten to assert the
fix), test_validate_of.ml's own independent exhaustive-sweep counter
and landmark-year filter (found via make check, not the initial
survey), and data/of/expected-divergences-litcal.sexp's L2/L3
allow-list entries against the litcal oracle (closed and removed, with
a dedicated regression test replacing the allow-list's own silence).
Diffstat (limited to 'data/of')
| -rw-r--r-- | data/of/expected-divergences-litcal.sexp | 46 |
1 files changed, 18 insertions, 28 deletions
diff --git a/data/of/expected-divergences-litcal.sexp b/data/of/expected-divergences-litcal.sexp index f4de6f4..e0b8b2a 100644 --- a/data/of/expected-divergences-litcal.sexp +++ b/data/of/expected-divergences-litcal.sexp @@ -71,34 +71,24 @@ (note "Holy Thursday (evening Mass)/Good Friday/Holy Saturday: litcal tags EASTER_TRIDUUM, colitur has no Triduum season value and keeps the whole day Lent -- a cited design decision, not a defect.") (expected_rows 36)) -; L2, L3 -- task 6 (2026-08-26): the litcal layer extended beyond season/week -; to GRADE and IDENTITY (test_litcal_of.ml's own header). Both fire on the -; SAME date, the SAME already-known, already-PINNED-NOT-FIXED gap -; test_rite_of.ml's own [test_holy_family_fallback_1583_known_wrong_ferial]/ -; [is_known_holy_family_fallback_gap] record: Normae n. 35(a)'s "Dominica -; infra octavam Nativitatis, vel, ea deficiente, die 30 decembris" fallback -; is never reached by {!Rite_of.Temporal_of.temporal} in a year 25 December -; is itself a Sunday (its Holy-Family test lives inside the Sunday-only -; dispatch arm of [sunday_slug], so the 30-December fallback [holy_family] -; itself computes correctly is never actually consulted there). 2033 is this -; fixture's own live witness -- 1583 (test_rite_of.ml's own pin) is outside -; the fixture's 2023-2035 window, 2033 is the only affected year inside it -; (2005, 2011, 2016, 2022, 2039, 2044, 2050 are the gap's other known -; occurrences, all likewise outside this window). VERDICT "colitur": this is -; colitur's own known defect, not litcal's -- litcal correctly names -; "HolyFamily" on 30 December 2033; colitur observes an ordinary -; Nativity-octave feria instead. NOT fixed here, per this task's own brief -; ("do not fix any of them here. Keep them pinned"). -((id L2) - (citation "Normae n. 35(a); test_rite_of.ml's own test_holy_family_fallback_1583_known_wrong_ferial") - (verdict colitur) - (note "30 December 2033 (25 December 2033 is a Sunday, so the 26-31 December window has no Sunday of its own): litcal correctly names HolyFamily (band 50/60 expected); colitur's known Normae n.35(a) fallback gap leaves it an ordinary Nativity-octave feria (band 90) -- the GRADE half of the divergence.") - (expected_rows 1)) -((id L3) - (citation "Normae n. 35(a); test_rite_of.ml's own test_holy_family_fallback_1583_known_wrong_ferial") - (verdict colitur) - (note "30 December 2033: the IDENTITY half of the same divergence L2 records for grade -- colitur's observed slug is an ordinary ferial slug, not of-holy-family.") - (expected_rows 1)) +; L2, L3 -- CLOSED, REMOVED (W2 fix, CLAUDE.md, temporal_of.ml). These two +; entries used to record a defect from task 6 (2026-08-26): the litcal layer +; extended beyond season/week to GRADE and IDENTITY, and both fired on the +; SAME date, the SAME then-known, then-PINNED-NOT-FIXED gap test_rite_of.ml +; used to record: Normae n. 35(a)'s "Dominica infra octavam Nativitatis, vel, +; ea deficiente, die 30 decembris" fallback was never reached by +; {!Rite_of.Temporal_of.temporal} in a year 25 December is itself a Sunday +; (its Holy-Family test lived inside the Sunday-only dispatch arm of +; [sunday_slug], so the 30-December fallback [holy_family] itself computed +; correctly was never actually consulted there). 2033 was this fixture's own +; live witness. {!Rite_of.Temporal_of.temporal} now consults +; {!Rite_of.Temporal_of.holy_family} directly, independent of weekday, so +; litcal and colitur agree on 30 December 2033 on both axes -- test_litcal_of +; .ml's own [test_no_holy_family_2033_divergence] asserts this directly. +; `expected_rows` for both would now be 0 (no divergent rows remain), so the +; entries are removed rather than kept as zero-value ghosts, the same +; "CLOSED, REMOVED" discipline data/ef/expected-divergences-missalemeum.sexp +; already follows for a closed entry. ; L4 -- litcal's own [grade_lcl] text "celebration with precedence over ; solemnities" (this fixture's own display word for Tabula I.1/I.2) is ALSO |
