diff options
| author | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-08-22 12:29:06 +0200 |
|---|---|---|
| committer | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-08-22 12:29:06 +0200 |
| commit | 89b6cfbc8c2a9f5921c19543f893decc2497ef69 (patch) | |
| tree | 50a95e596ab5adcc39f40b75af906c425504cda7 /test/test_temporal_ef.ml | |
| parent | d4682c13161b62bc83eaae37790493f670d39c01 (diff) | |
| download | colitur-89b6cfbc8c2a9f5921c19543f893decc2497ef69.tar.gz colitur-89b6cfbc8c2a9f5921c19543f893decc2497ef69.zip | |
fix(ef): check RG 24/25's ferial invariant instead of asserting it
rubrics_ef.ml's Creed check excluded feriae from 475(b)/(c)/(e) via an
explicit test for feria I classis (Ash Wednesday, Holy Week) and vigils
only. RG 24/25's feriae II and III classis (Advent 17-23 December, the
Advent/Lent/September Ember sets, the numbered Lenten/Passiontide
ferias) were excluded by no check at all, correct today only because of
an unstated Temporal_ef property (no ferial-origin office it builds
carries subject Lord/Bvm or an apostle-list slug). A comment read as if
this were established "by construction of the two exclusions
immediately above", which overclaimed: those two exclusions cover feria
I classis only.
Corrected the comments to name RG 24/25 explicitly, state what is and
is not checked, and cite where the real guarantee comes from. Added a
test that sweeps Temporal_ef.temporal across a century (1583-1682),
asserting the invariant directly against every ferial-origin day found,
with its own coverage counters confirming the span actually reaches
Advent 17-23, all three non-Whitsun Ember sets, and Lenten/Passiontide
ferias. The first run of the test found a real gap in its own
population filter (RG 17(a)'s 2 January Holy Name fallback, a genuine
feast sitting outside Temporal_ef.named for an architectural reason),
fixed by naming that date explicitly rather than narrowing the span.
Proved the test has teeth by mutation: forcing the ferial builder's
default subject to Lord reddened it (and 24 other tests, expected
collateral from an intentionally broad mutation) before being reverted.
No production logic changed -- only comments in rubrics_ef.ml. day,
readings and rubrics output confirmed byte-identical against the
pre-fix binary for four spot years across the domain. Also corrects a
stale test-case count in a prior task report (18 in the array, not the
19 recorded there); the array now genuinely holds 19.
Diffstat (limited to 'test/test_temporal_ef.ml')
0 files changed, 0 insertions, 0 deletions
