portfolio-optimiser/tests/fixtures
Kjell Tore Guttormsen 37547fe292
refactor(examples): replace sector-specific example material with generic, fictitious examples
The context sets, the packaged knowledge bases and the example bundles are
replaced by one fictitious example set about IT operations in an invented
organisation: three context sets (serverrom-2027, driftsavtale-2027 and the
two-base drift-og-avtale-2027), two synthetic knowledge bases under
src/portfolio_optimiser/data/kunnskapsbaser and two example bundles under
src/portfolio_optimiser/data/bundles. Numbers, codes and structural values in
tests and fixtures are kept; names, ids and wording change. Dated measurement
documents that only recorded runs on the replaced material are deleted.

Gate figures measured on the new set are not comparable with earlier ones.
The exclusion gate from the previous commit is green: 0 tracked files hit
outside the shared/ subtree.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 15:04:21 +02:00
..
k2-prisskjema-SYNTETISK feat(okf): derive a cost baseline from a priced schedule, or refuse 2026-09-03 03:15:39 +02:00
k2-prisskjema-uprisert-SYNTETISK feat(okf): derive a cost baseline from a priced schedule, or refuse 2026-09-03 03:15:39 +02:00
p7-grounding refactor(examples): replace sector-specific example material with generic, fictitious examples 2026-09-23 15:04:21 +02:00
p13b-block-sources refactor(examples): replace sector-specific example material with generic, fictitious examples 2026-09-23 15:04:21 +02:00
prepass feat(prepass): payload model, loader, shape gate and the binding to the mounted base [skip-docs] 2026-09-07 10:52:20 +02:00
README.md feat(okf): derive a cost baseline from a priced schedule, or refuse 2026-09-03 03:15:39 +02:00

Test fixtures

k2-prisskjema-SYNTETISK/ and k2-prisskjema-uprisert-SYNTETISK/

SYNTETISK — every number in these bundles is invented. They copy the structure of a public-tender Prisskjema.xlsx (NS 3451 posts: code, description, unit, quantity, unit price, sum) and nothing else. No private tender document is reproduced here, and the unit prices in the priced variant are round synthetic values chosen to be obviously not a real bid — they must never be read as anyone's pricing. This is the first building block of the S7b corpus.

The two variants are the two halves of the same measurement:

bundle Enhetspris column what it stands for
k2-prisskjema-SYNTETISK/ filled a priced schedule a baseline CAN be derived from
k2-prisskjema-uprisert-SYNTETISK/ empty K2's actual pre-award state — codes and descriptions, no quantities or prices

The table form is MEASURED, not hand-typed

Both bodies are the verbatim output of the producer's own office conversion, so the fixture states something about the format rather than recording our own idea of it:

pandoc -f xlsx -t markdown --eol=lf --wrap=none <sheet>.xlsx

with pandoc 3.10.2 — the writer and the two arguments are llm_ingestion_okf.extract's _PANDOC_WRITER / _PANDOC_ARGS. That is a pandoc simple table (a dash rule whose groups define the column spans), NOT the pipe table render_table emits: measured in session 78, the xlsx path reaches a concept body through inbox.py's render_inbox_concept(sanitized_text, …) and never touches render_table at all. An empty spreadsheet cell therefore arrives as blank space inside its column span — which is exactly what the unpriced variant has to carry for the refusal it gates to be the real one.