Full precedence sweep of temporal-categories.yml, two more real bugs
Deploy / deploy (push) Successful in 1m27s
Deploy / deploy (push) Successful in 1m27s
Following the Ascensiontide fix, swept every remaining unverified Sunday/ feria precedence tier against the live reference engine: - commemorations.ts's privileged-sunday rule was itself wrong: a duplex-majus+ candidate was given a bare commemoration instead of transferring, never actually verified. Live-checked the Immaculate Conception (transfers off Advent II) and the Annunciation (transfers off Palm/Easter Sunday) - confirmed correct by direct instruction. privileged-sunday now transfers every rank unconditionally. - eastertide's own Sunday tier was backwards (privileged-sunday instead of ordinary-sunday) for the ordinary Sundays after Easter - live- verified twice (Finding of the Holy Cross, St. Mark both win outright). Easter Day itself still needs the stronger tier, now special-cased directly since Sundays never consult the offset table. Six existing tests updated to reflect real, live-verified behavior - each had the old wrong "commemorated in place" assumption baked into its expected value. Remaining unverified entries (Vigil of Pentecost/ Christmas, Corpus Christi/Sacred Heart) documented as such rather than silently assumed correct. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017XMSokiTD2Qc5vPP2YQu3Q
This commit is contained in:
@@ -141,18 +141,16 @@ describe('decideOccurrence — ordinary-sunday', () => {
|
||||
});
|
||||
|
||||
describe('decideOccurrence — privileged-sunday', () => {
|
||||
it('is never displaced; duplex-majus and up are commemorated', () => {
|
||||
for (const rank of ['duplex-majus', 'duplex-2-classis', 'duplex-1-classis'] as const) {
|
||||
it('is never displaced, and never gives even a bare commemoration to any rank — everything transfers forward', () => {
|
||||
// Live-verified 2026-09-01 (see data/calendar/temporal-categories.yml
|
||||
// and commemorations.ts's own `privileged-sunday` case comment):
|
||||
// even a Duplex I. classis feast (the Immaculate Conception on Advent
|
||||
// II, the Annunciation on Palm/Easter Sunday) transfers with no
|
||||
// commemoration at all — corrects an earlier, never-actually-verified
|
||||
// "duplex-majus+ still gets a nod" guess.
|
||||
for (const rank of ['duplex-majus', 'duplex-2-classis', 'duplex-1-classis', 'duplex', 'semiduplex', 'simplex'] as const) {
|
||||
const result = decideOccurrence('privileged-sunday', 'advent-1', saint(rank));
|
||||
expect(result.winner).toEqual({ kind: 'temporal', id: 'advent-1' });
|
||||
expect(result.commemorations).toEqual([{ kind: 'sanctoral', id: 'x', name: 'St. Ereden', rank }]);
|
||||
expect(result.transfer).toBeUndefined();
|
||||
}
|
||||
});
|
||||
|
||||
it('duplex, semiduplex, and simplex all transfer forward — no bare commemoration here', () => {
|
||||
for (const rank of ['duplex', 'semiduplex', 'simplex'] as const) {
|
||||
const result = decideOccurrence('privileged-sunday', 'advent-1', saint(rank));
|
||||
expect(result.commemorations).toEqual([]);
|
||||
expect(result.transfer).toEqual({ candidate: saint(rank), direction: 'forward' });
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user