aboutsummaryrefslogtreecommitdiff
path: root/test/test_differential.ml
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_differential.ml')
-rw-r--r--test/test_differential.ml167
1 files changed, 119 insertions, 48 deletions
diff --git a/test/test_differential.ml b/test/test_differential.ml
index bdb3377..998a8fa 100644
--- a/test/test_differential.ml
+++ b/test/test_differential.ml
@@ -763,38 +763,82 @@ let lectio_no_reading_slugs =
itself is not always the observed day). *)
let lent_ember_slugs = [ "ef-lent-ember-wed"; "ef-lent-ember-fri"; "ef-lent-ember-sat" ]
-(* C23/C24 (task 8, fix round 1, coordinator review, Critical 1): Holy
+(* C23 (task 8, fix rounds 1-2, coordinator review, Critical 1): Holy
Week's own citations (tools/bootstrap_lectionary.ml's own
[holy_week_entries] comment has the full Missal citations and the two-
- scan corroboration for each). lectio has no Holy Week propers at all --
- every "ef-passiontide-0-<weekday>" ini section is Passion week's own
- Mass (or, for Tuesday specifically, Holy Tuesday's own Passion Gospel
- riding along on Passion week's own Epistle -- a genuine internal
- inconsistency in lectio's own source, not this project's to fix), so
- lectio shows THAT reused/conflated citation on every Holy Week weekday,
- every year, regardless of what the real Missal prints there.
+ scan corroboration for each of the six days). lectio has no Holy Week
+ propers at all -- every "ef-passiontide-0-<weekday>" ini section is
+ Passion week's own Mass (or, for Tuesday specifically, Holy Tuesday's
+ own data outright -- C26 below), so lectio shows that reused/conflated
+ citation on every Holy Week weekday, every year, regardless of what the
+ real Missal prints there.
- C23 covers the four days colitur now answers correctly and completely
- (Monday, Tuesday, Thursday, Saturday) -- verdict colitur, cited
- directly. C24 covers the two days colitur deliberately answers with []
- instead of a guess (Wednesday, Good Friday -- both genuinely
- multi-lesson liturgies with no single Epistle slot this schema could
- honestly fill; [holy_week_entries]'s own comment has the full argument
- for why forcing a pair would be an uncited editorial choice, not a
- Missal fact). Both entries: gated on colitur's own literal slug list
- and [diffs] staying exactly [First_f; Gospel_f] (identity already
- agrees on both). Every occurrence across the whole 2005-2050 fixture
- falls in all 46 years without exception, on every one of these six
- slugs -- Holy Week recurs every year by construction, so this is not a
- coincidental count the way a collision-driven entry's would be.
- Derived directly from the OCaml comparator's own failure output, not
- hand-counted first and cross-checked after: C23 184 (46 x 4), C24 92
- (46 x 2). *)
-let holy_week_answered_slugs =
- [ "ef-passiontide-2-monday"; "ef-passiontide-2-tuesday"; "ef-passiontide-2-thursday";
- "ef-passiontide-2-saturday" ]
+ CORRECTED, fix round 2: the first pass split this into two entries --
+ C23 for the four days with one unambiguous reading in the Epistle
+ position (Monday, Tuesday, Thursday, Saturday), C24 for Wednesday and
+ Good Friday, left with NO citation at all on the reasoning that neither
+ has an unambiguous Epistle. That reasoning was right about the FIRST
+ slot but the conclusion was wrong and worse than what it replaced: an
+ absent lectionary key does not mean "no reading" to Lectionary_ef.
+ readings, it means step 3 silently resumes the preceding SUNDAY -- so
+ Good Friday, which has no Mass at all, was emitting Palm Sunday's own
+ Epistle and Passion narrative every single year. Fixed at the source
+ (tools/bootstrap_lectionary.ml's own [holy_week_entries]): the GOSPEL is
+ always authored (one unambiguous labelled Passion each day, nothing to
+ choose among); the FIRST slot is filled too, using the SAME "last
+ lesson before the Gospel" convention this file's own Lenten Ember
+ Wednesday entry already establishes for an identical two-peer-lesson
+ shape (neither lesson on either day is labelled "Epistola" the way Holy
+ Saturday's genuinely is, so this remains a stated convention, not a
+ textual fact -- but it is the SAME convention already load-bearing
+ elsewhere in this exact file, not invented to paper over this gap).
+ C24 is retired, not re-adjudicated: its own population (the two days)
+ now has a real citation and folds into C23, which covers all SIX days
+ uniformly.
-let holy_week_unanswered_slugs = [ "ef-passiontide-2-wednesday"; "ef-passiontide-2-friday" ]
+ Gated on the literal 6-slug list and [diffs] staying exactly
+ [First_f; Gospel_f] (identity already agrees on all six). Holy Week
+ recurs every year by construction, so this is not a coincidental count
+ the way a collision-driven entry's would be -- but it is NOT simply
+ 46 x 6 = 276 either: Holy TUESDAY (`ef-passiontide-2-tuesday`) is the
+ one day of the six whose hand-authored citation is BYTE-IDENTICAL to
+ lectio's own value (both draw, independently, on the identical Missal
+ Mass -- C26 below has the full account of why lectio's ini carries
+ Holy Tuesday's data under a Passion-week key), so all 46 of its own
+ rows match outright and never reach this entry at all. Derived
+ directly from the OCaml comparator's own failure output, not
+ hand-counted first and cross-checked after: 230 (276 - 46, confirmed
+ by that same arithmetic, not merely asserted). *)
+let holy_week_slugs =
+ [ "ef-passiontide-2-monday"; "ef-passiontide-2-tuesday"; "ef-passiontide-2-wednesday";
+ "ef-passiontide-2-thursday"; "ef-passiontide-2-friday"; "ef-passiontide-2-saturday" ]
+
+(* C26 (task 8, fix round 2, coordinator review, Important): Passion
+ week's own real Tuesday Mass (tools/bootstrap_lectionary.ml's own
+ [passion_tuesday_entry] comment has the full Missal citation and both
+ scans' line references) -- Dan 14:27, 28-42 / John 7:1-13. lectio's own
+ ini section for this ONE weekday of Passion week is not Passion
+ Tuesday's Mass at all: it is Holy Tuesday's (confirmed independently,
+ footnoted in C23's own predecessor comment before this round acted on
+ it), and lectio's own COMPUTED reading for the civil date it labels
+ "Passion Tuesday" is drawn from that same wrong source -- so colitur's
+ now-correct citation genuinely diverges from lectio's on every single
+ occurrence this office is actually observed, not a data gap on either
+ side that could close. The other five Passion-week weekdays were
+ independently re-verified against the Missal and are correct as
+ lectio already had them -- this is the ONE exception, not a wider
+ pattern. Gated on the literal slug and [diffs] staying exactly
+ [First_f; Gospel_f]. Derived directly from the OCaml comparator's own
+ failure output, not hand-counted first and cross-checked after: 43,
+ not 46 -- traced, not merely accepted: in 2013, 2024 and 2042, Passion
+ Tuesday's own civil date is impeded outright by a competing I-class
+ feast (St Joseph, 19 March, in 2013 and 2024; the Annunciation, 25
+ March, in 2042), so colitur's own OBSERVED slug that day is the
+ saint's, not `ef-passiontide-1-tuesday` at all -- this entry correctly
+ does not fire there, and those three rows already match independently
+ (both engines agree on the saint's own citation, unrelated to this
+ entry). 43 + 3 = 46, the full domain, with no residue. *)
+let passion_tuesday_slug = "ef-passiontide-1-tuesday"
(* C25 (task 8, fix round 1, coordinator review, Important 3(b)) --
[verdict open], the SAME RG 69 gap C6 above re-opened, one hop removed.
@@ -806,25 +850,52 @@ let holy_week_unanswered_slugs = [ "ef-passiontide-2-wednesday"; "ef-passiontide
not the fixed weekday placeholder -- but colitur's [Temporal_ef] gives
both the SAME slug, undifferentiated by weekday (C6's own note, and
data/ef/expected-divergences.sexp's own C6 entry, have the full
- account). Confirmed, not merely inferred,
- that THIS entry is the direct, one-hop-removed consequence of that same
- gap: every single one of these rows' colitur-side citation is "Tit. 3,
- 4-7" (the fixed weekday formulary), because [Lectionary_ef.readings]'
- step 3 resumes the SAME wrongly-undifferentiated Sunday C6 already
- names, not a second, independent cause. A genuine, precisely-diagnosed
- [Temporal_ef] defect -- out of this task's own scope (a behaviour
- change to a shared, multi-round-reviewed kernel-adjacent function) --
- recorded here per the coordinator's own instruction ("record it
- prominently... for a follow-up task"), not fixed and not left silently
- failing. Gated on the literal 4-slug family (the only members of
- [ef-christmas-1-<weekday>] this mechanism can ever reach -- Monday and
- Tuesday of that same week are always claimed first by the Circumcision
- or Holy Name's own DIRECT entries, so they can never fall through to
- this specific step-3 chain) and [diffs] staying exactly
+ account). Confirmed, not merely inferred, that THIS entry is the
+ direct, one-hop-removed consequence of that same gap: every single one
+ of these rows' colitur-side citation is "Titus 3:4-7" (the fixed
+ weekday formulary), because [Lectionary_ef.readings]' step 3 resumes
+ the SAME wrongly-undifferentiated Sunday C6 already names, not a
+ second, independent cause. A genuine, precisely-diagnosed [Temporal_ef]
+ defect -- out of this task's own scope (a behaviour change to a
+ shared, multi-round-reviewed kernel-adjacent function) -- recorded
+ here per the coordinator's own instruction ("record it prominently...
+ for a follow-up task"), not fixed and not left silently failing.
+
+ CORRECTED, fix round 2 (coordinator review): this entry's own reason
+ for the literal 4-slug list (Wednesday/Thursday/Friday/Saturday, never
+ Monday/Tuesday) previously claimed Monday and Tuesday "are always
+ claimed first by the Circumcision's or Holy Name's own direct
+ entries" -- FALSIFIED by 2028-01-03/04, real dates that genuinely exist
+ as their own `ef-christmas-1-{monday,tuesday}` slugs and genuinely
+ resume via step 3 (they are not "claimed away" from existing at all).
+
+ A first replacement of this reasoning, hand-derived from the weekday
+ arithmetic, was ALSO wrong on a second reading (an off-by-one: 2
+ January being a Sunday makes 3 January a MONDAY, not a Tuesday) and is
+ not repeated here -- this project's own discipline is to trust
+ measurement over a second unverified derivation. What is stated instead
+ is the DIRECTLY OBSERVED fact, from an exhaustive sweep of every
+ `ef-christmas-1-monday`/`ef-christmas-1-tuesday` occurrence across
+ 2004-2051 against the real resolver (not merely the slug, the actual
+ resolved citation): `ef-christmas-1-monday` occurs 21 times in that
+ range and resolves to Holy Name Sunday's own citation (Gal 4:1-7/Luke
+ 2:33-40) EVERY time; `ef-christmas-1-tuesday` occurs 22 times and
+ resolves to EITHER Holy Name Sunday's citation OR the Circumcision's
+ (Titus 2:11-15/Luke 2:21) -- both real, correct, directly-cited
+ entries, confirmed never the wrong Nativity-Octave-Sunday value C6
+ above names. Both weekdays fall close enough to 1-2 January that their
+ own preceding-Sunday walk stays within January; Wednesday/Thursday/
+ Friday/Saturday are far enough from the nearest Sunday that the SAME
+ walk can reach past 2 January into December when Holy Name Sunday
+ does not exist that year, landing on C6's own wrongly-undifferentiated
+ Sunday instead -- offered as the general shape of why the two groups
+ differ, not re-asserted as a proven arithmetic rule a third time.
+ Gated on the literal 4-slug family and [diffs] staying exactly
[First_f; Gospel_f] (identity already agrees -- this is a pure content
- consequence). Derived directly from the OCaml comparator's own failure
- output, not hand-counted first and cross-checked after: 57
- (19 + 19 + 13 + 6, Wednesday/Thursday/Friday/Saturday respectively). *)
+ consequence). Derived directly from the OCaml
+ comparator's own failure output, not hand-counted first and cross-
+ checked after: 57 (19 + 19 + 13 + 6, Wednesday/Thursday/Friday/
+ Saturday respectively). *)
let rg69_one_hop_slugs =
[ "ef-christmas-1-wednesday"; "ef-christmas-1-thursday"; "ef-christmas-1-friday";
"ef-christmas-1-saturday" ]
@@ -933,8 +1004,8 @@ let layer_c_reason (l : row) (c : row) diffs =
then Some "C20"
else if List.mem c.slug rg69_one_hop_slugs && diffs = [ First_f; Gospel_f ] then Some "C25"
else if List.mem c.slug lent_ember_slugs && diffs = [ First_f; Gospel_f ] then Some "C22"
- else if List.mem c.slug holy_week_answered_slugs && diffs = [ First_f; Gospel_f ] then Some "C23"
- else if List.mem c.slug holy_week_unanswered_slugs && diffs = [ First_f; Gospel_f ] then Some "C24"
+ else if List.mem c.slug holy_week_slugs && diffs = [ First_f; Gospel_f ] then Some "C23"
+ else if String.equal c.slug passion_tuesday_slug && diffs = [ First_f; Gospel_f ] then Some "C26"
else None
(* ---------------------------------------------------------------------- *)