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
|
|
@ -3,9 +3,9 @@
|
|||
MEASURED OUTSIDE THIS REPOSITORY AND REPRODUCED HERE: the zip a publisher's
|
||||
own viewer delivers as "Html" holds 0 html, 1 xml and 109 images, and `okf
|
||||
build` on it gave **110 of 110 unreadable, 0 plans, exit 2** -- `.xml` was in
|
||||
neither extractor registry. The one xml file IS the whole product: R761
|
||||
Prosesskoden:2025, the same document round 12 met as a 701-page PDF, in
|
||||
NISO-STS form. It carries 7 715 `<sec>`, **2 761 of them with a `<title>`**,
|
||||
neither extractor registry. The one xml file IS the whole product: a large
|
||||
regulatory reference document, the same one round 12 met as a 701-page PDF,
|
||||
in NISO-STS form. It carries 7 715 `<sec>`, **2 761 of them with a `<title>`**,
|
||||
and a `<sec>`-nesting depth distribution of 28/118/500/1141/868/97/9 that is
|
||||
row-for-row identical to the fasit built from that same file.
|
||||
|
||||
|
|
@ -111,7 +111,7 @@ def test_the_label_and_the_title_reach_the_proposer_as_one_heading() -> None:
|
|||
|
||||
|
||||
def test_a_lettered_point_is_a_body_line_and_never_a_heading() -> None:
|
||||
"""4 954 of R761's 7 715 `<sec>` are these. One heading each buries 2 761."""
|
||||
"""4 954 of the reference standard's 7 715 `<sec>` are these. One heading each buries 2 761."""
|
||||
text = extract.extract_text(STS.name, STS.read_bytes())
|
||||
|
||||
assert "a) Betong skal ha fasthetsklasse B35." in text.split("\n")
|
||||
|
|
@ -154,8 +154,8 @@ def test_generic_xml_keeps_its_text_and_invents_no_structure() -> None:
|
|||
`<sec>`), so a document that is not STS is not guessed at."""
|
||||
text = extract.extract_text(GENERIC.name, GENERIC.read_bytes())
|
||||
|
||||
assert "Tunnelen er stengt for vedlikehold natt til fredag." in text
|
||||
assert "Redusert framkommelighet" in text
|
||||
assert "Kantinen er stengt for vedlikehold natt til fredag." in text
|
||||
assert "Redusert åpningstid" in text
|
||||
assert not any(line.startswith("#") for line in text.split("\n"))
|
||||
assert propose.find_candidates(text) == []
|
||||
|
||||
|
|
@ -232,7 +232,7 @@ def test_a_bundle_is_built_end_to_end_from_an_sts_document(tmp_path: Path) -> No
|
|||
def test_a_label_with_no_body_under_it_still_reaches_the_text() -> None:
|
||||
"""A pending label must not be overwritten by the next one, or by a heading.
|
||||
|
||||
MEASURED ON R761, and it is exactly two characters: one `x)` marks a
|
||||
MEASURED ON THE REFERENCE STANDARD, and it is exactly two characters: one `x)` marks a
|
||||
`<sec>` that carries a label and nothing else, and the label was held as a
|
||||
prefix for a body line that never came -- the next thing emitted was the
|
||||
following section's heading. Non-whitespace preservation was 1 283 393
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue