aboutsummaryrefslogtreecommitdiff
path: root/test/fixtures/lectio-ef-2005-2050.provenance
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-08-12 03:18:15 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-08-12 03:18:15 +0200
commitfcfce4ba0ab4ea93837b647deaa5292300aaad5e (patch)
tree0a56b077e5214a5aec3eec609de4e3a9358e4af3 /test/fixtures/lectio-ef-2005-2050.provenance
parent4235a6aa18b815c5457a7eb97fd97eb4919dfd4b (diff)
downloadcolitur-fcfce4ba0ab4ea93837b647deaa5292300aaad5e.tar.gz
colitur-fcfce4ba0ab4ea93837b647deaa5292300aaad5e.zip
test: differential vs lectio 2005-2050 with a cited allow-list
Validation layer 3 (design spec's five): compares colitur's real day-by-day EF output against lectio (sibling project, Go), 2005-2050, one line per civil day. Of 16801 day-pairs, 11206 already agree on the seven leading columns; the 5595 that don't resolve into exactly 25 distinct field-diff signatures, all triaged. Three strictly separate layers, per the controller's ruling (the brief's single flat allow-list assumed a handful of differences, not 5595): - Layer A (test_differential.ml, norm_season/norm_slug): vocabulary. An explicit, closed table of naming synonyms with no liturgical substance (lectio's easter/christmas vs colitur's paschaltide/christmastide; a handful of slugs that are two names for the identical office). No wildcards -- every entry is a literal string pair. - Layer B (strip_epiphany_index): numbering. The one slug family whose lectio/colitur index offset is not a constant (Time-after-Epiphany week numbering, register 3c#5) has its embedded digit stripped to a common form on both sides before comparing; rank and colour stay fully compared. - Layer C (data/ef/expected-divergences.sexp): the cited allow-list. Ten genuine liturgical disagreements, each citing its RG paragraph and naming which engine is right (always colitur, verified against the Missal/register, never against lectio's own behaviour). This is the only layer permitted to cover a difference in rank, colour, or which celebration is observed. Five extend or restate register 3c's already- documented divergences (season boundary, Sunday I-class, Advent Ember ferias, Rogations); five are new, found and adjudicated in this task (Lent Ember days, the Nativity Octave, Ember-day-vs-saint precedence, the St Joseph transfer off a Lent Sunday, and the 2011 Sacred Heart / Precious Blood / Visitation collision). expected_rows on each entry is an exact regression pin, asserted by the test, not documentation. 13 January (register 6's long-open "Baptism of the Lord" item) is confirmed empirically fixed already -- Task 11's sanctoral wiring closed it before this task started -- so it is not allow-listed; the only residual difference there is the season boundary already covered by C1. Two stated limits carried from the brief (commemorations are not comparable; lectio's own EF oracle asserts season only, 2025-2026 only, so a rank/colour difference is not presumptive evidence against colitur) plus a third found during this task (the week column is a display convention on both sides, not a liturgical fact, and is not compared at all) are documented in the test file's own doc comment. Fixture: test/fixtures/lectio-ef-2005-2050.txt, committed as plain text (1.4 MB), generated by lectio commit 2386a45; provenance recorded in the sibling .provenance file. Colitur's side is recomputed fresh from the library on every run, through the same Calendar/Rite_ef pipeline `colitur day` uses, not the compiled binary. Proved the harness has teeth by two reverted perturbations: a genuine colour difference injected into a fully-covered fixture row fails the "no unexplained differences" check with the exact mismatched row printed; a one-row drift in an allow-list entry's expected_rows fails the count check independently, showing it is not merely a duplicate of the first assertion. 236/236 tests green, clean-build verified, deterministic across OCAMLRUNPARAM=R.
Diffstat (limited to 'test/fixtures/lectio-ef-2005-2050.provenance')
-rw-r--r--test/fixtures/lectio-ef-2005-2050.provenance21
1 files changed, 21 insertions, 0 deletions
diff --git a/test/fixtures/lectio-ef-2005-2050.provenance b/test/fixtures/lectio-ef-2005-2050.provenance
new file mode 100644
index 0000000..e738484
--- /dev/null
+++ b/test/fixtures/lectio-ef-2005-2050.provenance
@@ -0,0 +1,21 @@
+Fixture: lectio-ef-2005-2050.txt
+Task: 2026-08-11-colitur-plan3-resolution-engine, Task 15 (differential harness)
+
+Produced by the sibling project ~/git/projects/lectio at commit:
+ 2386a45 cmd(lectio-ef-dump): new EF calendar dumper for colitur's differential oracle
+ (branch polish-ui-and-calendar at the time; see that repo's own log)
+
+Exact command:
+ cd ~/git/projects/lectio && go run ./cmd/lectio-ef-dump 2005 2050
+
+Output: one line per civil day, 2005-01-01 through 2050-12-31 inclusive
+(16801 lines = 46*365 + 11 leap days), in lectio's OWN vocabulary --
+season/slug/rank/colour spellings are lectio's, not translated to colitur's.
+See cmd/lectio-ef-dump/main.go's own doc comment for the exact column
+format and the caveats this repo's comparator (test/test_differential.ml)
+relies on: the trailing "+other-slug" tokens are LOSING candidates (lectio
+has no RG 111 admission logic), and lectio's own EF oracle test asserts
+season only, for 2025-2026 only (rank/colour are logged, not asserted).
+
+Regenerate with the same command if lectio's EF calendar logic changes and
+the fixture needs updating; do not hand-edit this file.