`docs/2026-09-04-k2-pptx-odt-rtf.md` measured the corpus denominator for these three office rows and found it ZERO: `K2/trinn1` holds 43 files and not one of them is a `pptx`, an `odt` or an `rtf`. So `extract._EVIDENCE` calls those rows `unmeasured` in the strongest sense available -- they work by construction and had never met a document at all. This is the smallest thing that changes that without inventing a corpus. One authored document -- a title, an intro, a 20-row label/value table, a caption and a 4x4 grid -- laid out three times in three containers, so the container and its reader are the only variable between the three measurements. `k2-office-fasit.json` carries the hand count taken from the AUTHORED content rather than from any converter's output: 56 cells, 20 pairs, 59 distinct strings, shared by all three. It is committed here, before the measurement runs, because a fasit written afterwards is a description of a result rather than a denominator for it. No converter wrote any of these files. `make_k2_office.py` lays every part by hand, for the reason `make_fixtures.py` already states and this set inherits: a file written by the converter and then read by the converter proves only that the converter agrees with itself, and stays green through any conversion defect that is symmetric. The commissioning order offered pandoc as one generator option; the committed fixture policy forbids it and the policy wins. Two converter behaviours were measured while laying the RTF out, both of them structurally plausible input read silently wrong, exit code 0 and no warning. Without `\pard\intbl` on cell paragraphs, consecutive `\trowd...\row` rows come back as each row NESTED inside the previous one: five label/value rows read as five levels of nested table, 2076 characters where 117 were expected. And the `\uN?` unicode escape -- the form Word emits -- loses the character after it: `A\u248?BC` reads back as `AoC` with the `B` gone, `A\u248?xBC` reads back as `AoBC`. The fixture writes `\uN ?` with an explicit space, which round-trips. Neither is worked around anywhere in `src/`. The generator and the fasit live one level above `k2-office/` and that is not tidiness: Door B walks its drop directory recursively, so anything parked beside the three documents would enter the run and N would stop being 3. Three synthetic documents in one house style are not a corpus. The rows stay `unmeasured` and the suite asserts that they do. Suite 1132 passed (1127 + 5), `ruff check` and `ruff format --check` clean. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
52 lines
No EOL
3.1 KiB
Text
52 lines
No EOL
3.1 KiB
Text
{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\froman Times New Roman;}}\pard\sa180\b\fs32 Kravspesifikasjon for tunnelbelysning\b0\fs24\par
|
|
\pard\sa180 Dokumentet samler kravene til belysning i vegtunneler over 500 meter.\par
|
|
\trowd\trgaph108\cellx3000\cellx6000
|
|
\pard\intbl Dokumentnummer:\cell \pard\intbl SVV-2026-0417\cell \row
|
|
\trowd\trgaph108\cellx3000\cellx6000
|
|
\pard\intbl Tittel:\cell \pard\intbl Tunnelbelysning i hovedl\u248 ?pet\cell \row
|
|
\trowd\trgaph108\cellx3000\cellx6000
|
|
\pard\intbl Ansvarlig avdeling:\cell \pard\intbl Utbyggingsdivisjonen\cell \row
|
|
\trowd\trgaph108\cellx3000\cellx6000
|
|
\pard\intbl Fagomr\u229 ?de:\cell \pard\intbl Elektro og belysning\cell \row
|
|
\trowd\trgaph108\cellx3000\cellx6000
|
|
\pard\intbl Versjon:\cell \pard\intbl 2.3 godkjent\cell \row
|
|
\trowd\trgaph108\cellx3000\cellx6000
|
|
\pard\intbl Gyldig fra:\cell \pard\intbl 01.03.2026\cell \row
|
|
\trowd\trgaph108\cellx3000\cellx6000
|
|
\pard\intbl Erstatter:\cell \pard\intbl SVV-2024-0188\cell \row
|
|
\trowd\trgaph108\cellx3000\cellx6000
|
|
\pard\intbl Tunnellengde:\cell \pard\intbl 1240 meter\cell \row
|
|
\trowd\trgaph108\cellx3000\cellx6000
|
|
\pard\intbl Dimensjonerende fart:\cell \pard\intbl 80 km/t\cell \row
|
|
\trowd\trgaph108\cellx3000\cellx6000
|
|
\pard\intbl \u197 ?rsd\u248 ?gntrafikk:\cell \pard\intbl 12400 kj\u248 ?ret\u248 ?y\cell \row
|
|
\trowd\trgaph108\cellx3000\cellx6000
|
|
\pard\intbl Terskelluminans:\cell \pard\intbl 145 candela\cell \row
|
|
\trowd\trgaph108\cellx3000\cellx6000
|
|
\pard\intbl Overgangssone:\cell \pard\intbl Tre trinn nedtrapping\cell \row
|
|
\trowd\trgaph108\cellx3000\cellx6000
|
|
\pard\intbl Innerstrekning:\cell \pard\intbl 3,0 candela\cell \row
|
|
\trowd\trgaph108\cellx3000\cellx6000
|
|
\pard\intbl Utkj\u248 ?ringssone:\cell \pard\intbl Ingen forsterkning\cell \row
|
|
\trowd\trgaph108\cellx3000\cellx6000
|
|
\pard\intbl Fargetemperatur:\cell \pard\intbl 4000 kelvin\cell \row
|
|
\trowd\trgaph108\cellx3000\cellx6000
|
|
\pard\intbl Fargegjengivelse:\cell \pard\intbl Ra st\u248 ?rre enn 70\cell \row
|
|
\trowd\trgaph108\cellx3000\cellx6000
|
|
\pard\intbl N\u248 ?dbelysning:\cell \pard\intbl 60 minutter drift\cell \row
|
|
\trowd\trgaph108\cellx3000\cellx6000
|
|
\pard\intbl Vedlikeholdsfaktor:\cell \pard\intbl 0,80 beregnet\cell \row
|
|
\trowd\trgaph108\cellx3000\cellx6000
|
|
\pard\intbl M\u229 ?lemetode:\cell \pard\intbl M\u229 ?ling med luminanskamera\cell \row
|
|
\trowd\trgaph108\cellx3000\cellx6000
|
|
\pard\intbl Avviksh\u229 ?ndtering:\cell \pard\intbl S\u248 ?knad om fravik\cell \row
|
|
\pard\sa180 Luminansmatrise per trafikklasse\par
|
|
\trowd\trgaph108\cellx3000\cellx6000\cellx9000\cellx12000
|
|
\pard\intbl Sone\cell \pard\intbl Klasse A\cell \pard\intbl Klasse B\cell \pard\intbl Klasse C\cell \row
|
|
\trowd\trgaph108\cellx3000\cellx6000\cellx9000\cellx12000
|
|
\pard\intbl Terskel\cell \pard\intbl 150 cd\cell \pard\intbl 120 cd\cell \pard\intbl 95 cd\cell \row
|
|
\trowd\trgaph108\cellx3000\cellx6000\cellx9000\cellx12000
|
|
\pard\intbl Overgang\cell \pard\intbl 45 cd\cell \pard\intbl 36 cd\cell \pard\intbl 28 cd\cell \row
|
|
\trowd\trgaph108\cellx3000\cellx6000\cellx9000\cellx12000
|
|
\pard\intbl Indre\cell \pard\intbl 3,5 cd\cell \pard\intbl 3,0 cd\cell \pard\intbl 2,5 cd\cell \row
|
|
} |