aboutsummaryrefslogtreecommitdiff
path: root/test/test_citation_coverage.ml
Commit message (Collapse)AuthorAgeFilesLines
* feat(citation): the Sigla facade, total by constructionLukasz Kasprzak2026-08-201-24/+70
| | | | | | | | | | | | | | | | | | format never raises and returns an unparseable citation unchanged, so a gap degrades to today's behaviour rather than to a crash. The coverage test asserts separately that no shipped citation takes that path. verbatim is what --raw uses: an identity name table would still reformat punctuation and renumber, which would break byte-exact diffing against lectio. The existing citation-coverage walk (1970-2070) now also drives a round-trip check in the same pass: parse -> render -> parse must reach the same structure, using Book.default_spelling for names (Book.to_string returns the internal id, which is not a registered token and cannot be read back). Proved with a mutation: changing the default style's part_sep to a separator the parser does not accept reddened the round-trip case on 31 multi-part citations and nothing else; reverted.
* test(citation): assert every emitted citation parsesLukasz Kasprzak2026-08-201-0/+43
Walks 1970-2070 and parses every citation the engine emits. Nothing validated citation spellings before this, which is why seven books carried two spellings unnoticed. Mutation-proved: removing the 'Isa.' spelling from the book table reddens this test naming that citation.