58958aa847
Deploy / deploy (push) Failing after 21s
Pulls in verified content from Divinum Officium rather than placeholders: 17 psalms (2, 6, 7-19, 118, 129), 365 days of the Martyrology, and the full 121-reading Regula cycle, plus the Athanasian Creed. Ordo corrections driven by review against the real engine output: - Capitulum and Preces now pick a Sunday/feast vs. ferial form (calendar/isSundayOrFeast); ferial Preces said every ferial day by choice. - Chapter responsory, hymn doxology, and the opening versicle's Alleluia/Laus tibi all vary by season via a shared resolver (hours/seasonal-propers.ts). - Real Roman Kalends/Nones/Ides Latin dating (calendar/roman-date.ts, verified against 363/365 real Martyrology headings) plus the historical "bis sextus" Feb 29 handling, and the Martyrology's Luna (moon-day) heading (a ported Golden-Number calculation). - Fixed responsory structure (was missing its initial full repeat), weekday psalm antiphons (opening as incipit-or-full by rank, full repeat after the psalms/Creed as its own part, "*" chant mark kept), scripture citations on the capitulum/lectio brevis, and V./R. markers switched from Unicode symbols to plain text for reliable font rendering. - Dropped Pretiosa and the dead-commemoration psalm (129) for time; trimmed section headings down to the ones that are actually named things (Preces, Chapter Office, etc. no longer relabel connective text). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
35 lines
1.6 KiB
TypeScript
35 lines
1.6 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
|
import { romanDateLatin } from '../../src/calendar/roman-date';
|
|
|
|
describe('romanDateLatin', () => {
|
|
it('names the day itself for Kalends/Nones/Ides', () => {
|
|
expect(romanDateLatin(1, 1, 2026)).toBe('Kaléndis Januárii');
|
|
expect(romanDateLatin(1, 5, 2026)).toBe('Nonis Januárii');
|
|
expect(romanDateLatin(1, 13, 2026)).toBe('Idibus Januárii');
|
|
});
|
|
|
|
it('uses the MMJO exception (March/May/July/October Nones=7, Ides=15)', () => {
|
|
expect(romanDateLatin(3, 7, 2026)).toBe('Nonis Mártii');
|
|
expect(romanDateLatin(3, 15, 2026)).toBe('Idibus Mártii');
|
|
});
|
|
|
|
it('counts backward from the next fixed point, verified against real Martyrology headings', () => {
|
|
// Christmas Eve and Christmas Day are the textbook examples.
|
|
expect(romanDateLatin(12, 24, 2026)).toBe('Nono Kaléndas Januárii');
|
|
expect(romanDateLatin(12, 25, 2026)).toBe('Octávo Kaléndas Januárii');
|
|
// Tomorrow's Martyrology entry for 2026-08-25's Prime.
|
|
expect(romanDateLatin(8, 26, 2026)).toBe('Séptimo Kaléndas Septémbris');
|
|
});
|
|
|
|
it('uses "Pridie" for the day immediately before a fixed point', () => {
|
|
expect(romanDateLatin(12, 31, 2026)).toBe('Prídie Kaléndas Januárii');
|
|
expect(romanDateLatin(1, 4, 2026)).toBe('Prídie Nonas Januárii');
|
|
expect(romanDateLatin(1, 12, 2026)).toBe('Prídie Idus Januárii');
|
|
});
|
|
|
|
it('treats Feb 29 as a repeat of Feb 24 (the historical "bis sextus")', () => {
|
|
expect(romanDateLatin(2, 29, 2028)).toBe(romanDateLatin(2, 24, 2028));
|
|
expect(romanDateLatin(2, 29, 2028)).toBe('Sexto Kaléndas Mártii');
|
|
});
|
|
});
|