test(fixtures): replace sector-specific example material with generic, fictitious examples — green
Every fixture, test document, tool example and document now uses an invented kitchen-and-baking handbook series, written in this repository. The package's behaviour is unchanged; src/ changes are comments and help text only. - Generated fixtures are regenerated from their generators. Their structural counts are identical before and after: elements, images, rows, cells, headings, bookmarks and the witness inventory's per-document totals. The image-inbox and accounting documents are renamed kapittel-84-*. - tools/okf_accounting_gate.py: the two options that named one real corpus each are replaced by a generic, repeatable --corpus PATH with no default. Row 5 compares the PDF pair alone. Gate verdict unchanged: RED rows 2, 3, 6. - tools/okf_witness.py: the STS JSON reader for one publisher's delivery is removed, along with its three twins and five tests. The mutation harness loses W09. - docs/: 13 dated reports that documented runs on a retired reference corpus are removed, and 40 are neutralized. Dead links are removed, and no new dangling path is introduced. - The synthetic MCP-gate corpus and the residual probe words are neutral. Valgt: keep the `okf quality --fasit` bar value (the measured fraction, one corpus) and rewrite only its provenance, because the verdict stays unchanged and the number names nothing. Term check with the local list: 0 of 411 tracked files, 0 file names, 0 of 27 binary fixtures. Suite after git add: 2457 passed, 1 skipped. The base tree had 2460 passed and 2 skipped; five tests went with the JSON reader and four were added by the term check. ruff, ruff format and mypy --strict src/ are clean. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
1e7345a401
commit
9d1f4b14ed
174 changed files with 1889 additions and 6512 deletions
|
|
@ -7,7 +7,7 @@ is bold text, the proposer proposes nothing, and the document reaches Door B's
|
|||
inbox as one flat concept. Content preserved, structure zero.
|
||||
|
||||
WHAT THE GRAMMAR READS, AND WHERE IT LIVES. Not `rtf` markup. The converter
|
||||
already emits that bold title as `**Kravspesifikasjon for tunnelbelysning**` in
|
||||
already emits that bold title as `**Kravspesifikasjon for kjøkkenbelysning**` in
|
||||
the SAME markdown the other office rows produce, so this rule is a markdown
|
||||
rule and no `rtf`-only grammar exists -- the same shape of decision as the PDF
|
||||
font reader emitting ATX rather than a PDF-only heading form. Bold INSIDE a
|
||||
|
|
@ -79,18 +79,18 @@ DEFAULT = dict(
|
|||
|
||||
#: The shape the converter hands back for the `rtf` fixture: a bold title, a
|
||||
#: prose paragraph, then a grid table of label/value pairs.
|
||||
BOLD_TITLED = """**Kravspesifikasjon for tunnelbelysning**
|
||||
BOLD_TITLED = """**Kravspesifikasjon for kjøkkenbelysning**
|
||||
|
||||
Dokumentet samler kravene til belysning i vegtunneler over 500 meter.
|
||||
Dokumentet samler kravene til belysning i storkjøkken over 500 kvadratmeter.
|
||||
|
||||
----------------------- ------------------------------
|
||||
Dokumentnummer: SVV-2026-0417
|
||||
Tittel: Tunnelbelysning i hovedlopet
|
||||
Dokumentnummer: EKS-2026-0417
|
||||
Tittel: Kjokkenbelysning i hovedsalen
|
||||
----------------------- ------------------------------
|
||||
|
||||
**Luminansmatrise**
|
||||
|
||||
Matrisen gjelder per trafikklasse og er bindende.
|
||||
Matrisen gjelder per romklasse og er bindende.
|
||||
"""
|
||||
|
||||
#: The known-negative for the whole-line clause. `**fet**` here is a phrase
|
||||
|
|
@ -118,7 +118,7 @@ Leverandoren bekrefter at opplysningene i skjemaet er riktige.
|
|||
#: lines are sentence fragments, not section names.
|
||||
BOLD_SENTENCE_FRAGMENTS = """**er inngaatt mellom:**
|
||||
|
||||
Byggherren og leverandoren, representert ved sine kontaktpersoner.
|
||||
Kjøkkensjefen og leverandoren, representert ved sine kontaktpersoner.
|
||||
|
||||
**Sted og dato:**
|
||||
|
||||
|
|
@ -139,7 +139,7 @@ def _titles(text: str, **overrides: object) -> list[str]:
|
|||
def test_a_bold_standalone_line_becomes_a_title_candidate() -> None:
|
||||
"""The `rtf` row's whole finding: the title the container never declared."""
|
||||
assert _titles(BOLD_TITLED, bold_title=True) == [
|
||||
"Kravspesifikasjon for tunnelbelysning",
|
||||
"Kravspesifikasjon for kjøkkenbelysning",
|
||||
"Luminansmatrise",
|
||||
]
|
||||
|
||||
|
|
@ -183,7 +183,7 @@ def test_the_rtf_row_recovers_every_authored_title_over_four_documents() -> None
|
|||
|
||||
Round 9: 0 of 0 declared headings, 0 concepts, 1368 of 1368 characters in
|
||||
no segment, N = 1. Here: 6 of 6 AUTHORED titles over N = 4, 0 false bold
|
||||
titles, 0 of 1994 characters in no segment.
|
||||
titles, 0 of 2089 characters in no segment.
|
||||
|
||||
`authored_titles` is deliberately not a count of what the container
|
||||
declares. `rtf` has no heading style, so a "declared heading" count for
|
||||
|
|
@ -213,7 +213,7 @@ def test_the_rtf_row_recovers_every_authored_title_over_four_documents() -> None
|
|||
unsegmented += len(text) - sum(c.end - c.start for c in found)
|
||||
assert (recovered, authored) == (6, 6), "every authored title, over four containers"
|
||||
assert false_titles == 0, "the bold RUN inside a sentence must not become a title"
|
||||
assert (unsegmented, total) == (0, 1994), "no character left outside a segment"
|
||||
assert (unsegmented, total) == (0, 2089), "no character left outside a segment"
|
||||
|
||||
|
||||
def test_the_row_is_zero_without_the_rule_which_is_round_nine_reproduced() -> None:
|
||||
|
|
@ -238,5 +238,5 @@ def test_the_container_declaring_a_heading_style_still_reaches_us_as_bold() -> N
|
|||
"""
|
||||
path = _fixture("krav-rikt-tekstformat-stil.rtf")
|
||||
text = extract_text(path.name, path.read_bytes())
|
||||
assert "**Kravspesifikasjon for tunnelbelysning**" in text
|
||||
assert "**Kravspesifikasjon for kjøkkenbelysning**" in text
|
||||
assert [line for line in text.splitlines() if line.startswith("#")] == []
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue