aboutsummaryrefslogtreecommitdiff
path: root/test/fixtures/lectio-ef-2005-2050.provenance
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-08-12 22:24:30 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-08-12 22:24:30 +0200
commita4ffb0234d198ef295554e3202db15403346fbed (patch)
tree59163b946315a16b19fe43be25e3691b5c3baafd /test/fixtures/lectio-ef-2005-2050.provenance
parentdbde8523f2ec2f0db4d2619afed8575ccf8a3641 (diff)
downloadcolitur-a4ffb0234d198ef295554e3202db15403346fbed.tar.gz
colitur-a4ffb0234d198ef295554e3202db15403346fbed.zip
test(differential): refresh the lectio fixture, close 9 entries, add C14
lectio moved 2386a45 -> 3b32c00 (seven EF calendar defects fixed, plus a sanctoral-generator root-cause fix); the committed fixture predates all of them. Regenerated with the same command the provenance note already named (`go run ./cmd/lectio-ef-dump 2005 2050`), read-only against lectio -- nothing there was touched. New SHA-256 asserted in both the provenance note and test_differential.ml's fixture_sha256. The dumper's two new name_en/name_pl columns are kept verbatim (the fixture is meant to be the exact command's raw output; the comparator already discards everything past field 7). Every C-entry's expected_rows was re-derived independently against the refreshed fixture (a Python re-implementation of diff_fields/ layer_c_reason, cross-checked against the real OCaml comparator's own failure output), not transcribed from a green run. Nine entries -- C2, C3, C4, C5, C7, C10, C11, C12, C13 -- now match zero rows and are closed: sexp row removed, layer_c_reason predicate and its now-dead helper bindings removed, citation preserved in docs/research/rules-register.md's new ยง3d with the specific lectio commit that fixed each one. C1 (361 -> 368) absorbs C13's former 7 rows now that lectio's own slug matches there too. C6 (138, unchanged count) narrows to a slug-only shape now that lectio's rank agrees. C8 (31, unchanged) survives untouched -- lectio still computes no Rogation days. C9's old shape ("Joseph observed ON a Lent Sunday") is also closed, but a narrower, different divergence survived under the same saint's slug: 3 years (2008, 2035, 2046) where Joseph's own congested RG96 walk collides with the Annunciation's separately-transferred "sedes propria". The old predicate's broad "any diff involving this slug" match was silently absorbing both under one citation -- split into a new id, C14, rather than folded back into C9, since the two are unrelated rules. lectio's own commit history (09a1444) documents this residual as a gap it deliberately left unresolved; colitur gives Joseph a real transferred day either way, which is why C14's verdict stands regardless of a genuinely open sub-question (recorded in the register, not resolved here) about which of the two feasts should claim the contested day first under RG98's "prius impeditum" wording. Re-triaged the full remaining 4975 raw differences: only 10 distinct field-diff signatures now, all resolving to Layer A/B noise or the four surviving citations, 0 unexplained. The crude "Sunday-rank" and "Holy Thursday" residues the task flagged both fully resolve once the real Layer A/B machinery runs (season-spelling and week-numbering artifacts, not substantive divergences) -- see the task report for the derivation. Teeth proof: perturbing ferial_rank to reproduce C4's old defect made 140 rows reappear as unexplained (the exact prior C4 count), reverted after capturing the failure message. 277 tests green (dune test) and 278 with COLITUR_EXHAUSTIVE_SWEEP=1 (the extra case is the 1583-9999 sweep itself).
Diffstat (limited to 'test/fixtures/lectio-ef-2005-2050.provenance')
-rw-r--r--test/fixtures/lectio-ef-2005-2050.provenance46
1 files changed, 43 insertions, 3 deletions
diff --git a/test/fixtures/lectio-ef-2005-2050.provenance b/test/fixtures/lectio-ef-2005-2050.provenance
index 872517b..e05adb5 100644
--- a/test/fixtures/lectio-ef-2005-2050.provenance
+++ b/test/fixtures/lectio-ef-2005-2050.provenance
@@ -1,11 +1,24 @@
Fixture: lectio-ef-2005-2050.txt
-Task: 2026-08-11-colitur-plan3-resolution-engine, Task 15 (differential harness)
+Task: 2026-08-12-colitur-rg16a, fixture refresh (differential-oracle regeneration
+after lectio's "seven EF calendar defects" fix wave; branch ef-rebootstrap).
Produced by the sibling project ~/git/projects/lectio at commit:
- 2386a45 cmd(lectio-ef-dump): new EF calendar dumper for colitur's differential oracle
+ 3b32c00 Merge branch 'fix/ef-precedence-defects': seven EF calendar defects
(branch polish-ui-and-calendar at the time; see that repo's own log)
-SHA-256: 2ca3eeeda4e7a0406c4d004c1b2003fc0df671aca9af18a1b506543a721c8bac
+Previous provenance (superseded by this refresh):
+ 2386a45 cmd(lectio-ef-dump): new EF calendar dumper for colitur's differential oracle
+ SHA-256 was 2ca3eeeda4e7a0406c4d004c1b2003fc0df671aca9af18a1b506543a721c8bac.
+ Between 2386a45 and 3b32c00, lectio fixed seven EF calendar defects (Sunday
+ I-class ranks incl. Rose Sundays, Holy Thursday's colour, Ember-day rank,
+ the September-Ember-vs-St-Matthew/Thomas occurrence, the Joseph-on-a-Lent-
+ Sunday transfer, the 2011 Precious-Blood transfer, and the Nativity-octave
+ III-class-feast bootstrap gap) and root-caused its sanctoral generator.
+ 806 of the 16801 rows changed field-for-field (fields 1-7) between the two
+ fixtures -- see .superpowers/sdd/2026-08-12-colitur-rg16a/fixture-refresh-report.md
+ for the full before/after account.
+
+SHA-256: fc4832f1bc1bdfd322e808ae4929487628981792c23f959c1764c8eaedbfaf7f
(same digest as [fixture_sha256] in test/test_differential.ml, ASSERTED by
that suite's own "fixture SHA-256 matches its provenance note" test -- this
line documents the pin for a reader who never runs the suite; that test is
@@ -25,5 +38,32 @@ 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).
+Column count changed since the previous fixture: the dumper at 2386a45
+printed 7 space-separated fields (date weekday season week slug rank
+colour) plus any trailing "+other-slug" tokens; at 3b32c00 it prints 9
+(the same 7, PLUS name_en and name_pl -- the observed celebration's own
+display name in each language, "_"-for-space, "-" for empty) before the
+"+other-slug" tail. DECISION (this refresh): keep the fixture as the
+dumper's raw, unedited stdout, name columns included -- do not strip them
+back to 7 fields. Reasons: (1) this file's own contract is "the exact
+command's output, verbatim" -- stripping columns would mean the committed
+bytes no longer equal what the command above produces, forcing an
+undocumented post-processing step into what is supposed to be a one-line
+regeneration; (2) test/test_differential.ml's row_of_line already matches
+`date :: weekday :: season :: week :: slug :: rank :: colour :: _others`,
+so any extra trailing fields land in the ignored `_others` tail with no
+code change needed -- positions 1-7 (everything the comparator actually
+reads) are unaffected by the two new columns appended after them; (3) the
+names make the fixture usefully human-readable for manual triage (matching
+a slug like `ef-lent-sunday-1` against its own "First_Sunday_of_Lent" is
+faster than cross-referencing sanctoral data by hand). Cost: name_en/pl
+now sit in the same unparsed trailing region as the real "+other-slug"
+losing-candidate tokens, since neither is "+"-prefixed -- harmless today
+because nothing reads `_others` at all, but worth knowing if a future task
+ever wants to parse that tail: field 8 and 9 are names, not candidates,
+and only tokens from field 10 onward (or 9 onward on a line with no name_pl
+edge case -- there is none; both name fields are always present, "-" when
+empty) are "+"-prefixed losing candidates.
+
Regenerate with the same command if lectio's EF calendar logic changes and
the fixture needs updating; do not hand-edit this file.