From 906a84e626ed49c6bd995c6fad7d53355baf582a Mon Sep 17 00:00:00 2001 From: Lukasz Kasprzak Date: Tue, 18 Aug 2026 14:37:34 +0200 Subject: test(differential): refresh the lectio fixture -- the lineage inverted Every previous refresh of this fixture carried lectio's answers TO colitur, because colitur's data was bootstrapped from lectio. This one carries colitur's answers BACK. lectio has merged eight field corrections colitur argued from the 1962 Missal: ubaldus and didacus promoted from commemoration to III-class feast on the Missal's own calendarium, both August vigils recoloured violet under RG 128, and both Ember Saturdays' readings, which lectio had carrying St Thomas's and St Matthew's Masses respectively. 227 of the 16801 rows changed. Three cited classes went to zero and are CLOSED and REMOVED, citations preserved in the register, the same discipline C2-C5, C7, C9-C13, C21, C22 and C25 already record: C27 40 -> 0 the Advent Ember Saturday's readings C28 40 -> 0 the September Ember Saturday's readings C37 77 -> 0 the two vigil colours C37 is worth noting by name: its own note called the shared lineage "the sharpest demonstration in the project", colitur and lectio and missalemeum all carrying the same two wrong colours. Two of the three now carry the right one. C38 NARROWED rather than closed, and the distinction matters. Its identity half is gone -- lectio ranks both saints class-3 now -- but the same 70 rows still differ on readings, because both saints take their Mass from a Common and lectio has no Commons concept to resolve one. It is gated on diffs = [First_f; Gospel_f] exactly, which is C18's shape. It cannot close without lectio gaining a capability, which is a feature rather than a fix. Net: 24 cited classes to 21, 2252 divergent rows to 2095, agreement 86.6% to 87.5%. The number that matters is not the percentage though -- it is that those 227 days now agree BECAUSE BOTH ENGINES FOLLOW THE MISSAL, where before they agreed because both inherited the same errors from Divinum Officium. That is the failure mode CLAUDE.md's lineage note describes, resolved rather than documented, for the first time in this project. --- test/test_differential.ml | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) (limited to 'test/test_differential.ml') diff --git a/test/test_differential.ml b/test/test_differential.ml index 25a690d..8edde31 100644 --- a/test/test_differential.ml +++ b/test/test_differential.ml @@ -164,7 +164,7 @@ let allow_list_path = "../data/ef/expected-divergences.sexp" deliberately, after re-running the exact command the provenance note names -- never by copying the actual value back in to make a mismatch pass, which would defeat the point of pinning it at all. *) -let fixture_sha256 = "a3092e3f465c2a369ae060c2c310cd3087918b821ea839bf06276ab9d82a10ce" +let fixture_sha256 = "ab25fadc068f2833e6ce355474ca595ce54487e91fd9571d5ddf6bc7396b7eee" (* Same technique tools/bootstrap_sanctoral.ml already uses for this exact purpose (that file's own comment: shelling out to the system's @@ -1306,16 +1306,9 @@ let layer_c_reason (l : row) (c : row) diffs = filed there. See data/ef/expected-divergences.sexp's own closure note. *) else if String.equal c.slug good_friday_slug && diffs = [ First_f; Gospel_f; Colour_f ] then Some "C36" - else if List.mem c.slug violet_vigil_slugs && diffs = [ Colour_f ] then Some "C37" - else if - List.mem c.slug promoted_feast_slugs - && (diffs = [ Slug_f; Rank; First_f; Gospel_f ] - || diffs = [ Slug_f; Rank; First_f; Gospel_f; Colour_f ]) - then Some "C38" + else if List.mem c.slug promoted_feast_slugs && diffs = [ First_f; Gospel_f ] then Some "C38" 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 if String.equal c.slug advent_ember_sat_slug && diffs = [ First_f; Gospel_f ] then Some "C27" - else if String.equal c.slug september_ember_sat_slug && diffs = [ First_f; Gospel_f ] then Some "C28" else None (* ---------------------------------------------------------------------- *) -- cgit v1.3