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>
71 lines
3.2 KiB
Python
71 lines
3.2 KiB
Python
"""Load-bearing seam for the S5.4 value report's overlap flagging (målbilde §7).
|
|
|
|
DETACH POINTS THAT TURN THIS RED (documented, not stubbed — the assertions ARE the seam lock):
|
|
1. Drop the ``overlaps=ledger.overlaps()`` surfacing in ``build_value_report`` -> the marker
|
|
overlap key vanishes from BOTH the text and the JSON output -> the positive arm goes RED.
|
|
2. Bypass the ledger's dimension-free dedup (``_dedup_amount`` / ``_sum_key``) -> the same
|
|
candidate realized under two dimensions is double-counted -> ``portfolio_total_ore`` doubles to
|
|
``2 * _MARKER_ORE`` -> the control arm goes RED.
|
|
|
|
The MARKER amount + identity appear NOWHERE else in the repo (marker convention,
|
|
``tests/test_run_cli_loadbearing.py:25``; absence grep-verified before choosing), so a rendered
|
|
match is provably caused by THIS ledger flowing through the report, not by incidental repo text.
|
|
|
|
Reuses the same-candidate-two-dimensions construction from
|
|
``tests/test_ledger_loadbearing.py:52-66``, rendered through the report.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import json
|
|
|
|
from portfolio_optimiser.ledger import LedgerEntry, SavingsLedger
|
|
from portfolio_optimiser.value_report import (
|
|
build_value_report,
|
|
dump_report_json,
|
|
format_report_text,
|
|
)
|
|
|
|
_MARKER_ORE = 58917 # marker: appears nowhere else in the codebase
|
|
_MARKER_ID = "c-marker-overlap-s54" # marker: appears nowhere else in the codebase
|
|
|
|
|
|
def _overlap_ledger() -> SavingsLedger:
|
|
"""One candidate (``_MARKER_ID``) realized under TWO dimensions (energi + lisens) in P1 — a
|
|
distinct FULL storage key each, so both are stored (the overlap is visible), while the
|
|
dimension-free dedup counts the ``_MARKER_ORE`` amount ONCE."""
|
|
led = SavingsLedger()
|
|
for dimension in ("energi", "lisens"):
|
|
led.add_realized(
|
|
LedgerEntry(
|
|
project_id="P1",
|
|
dimension=dimension,
|
|
candidate_identity=_MARKER_ID,
|
|
amount_ore=_MARKER_ORE,
|
|
verdict_id="v-marker",
|
|
provenance="marker-prov",
|
|
)
|
|
)
|
|
return led
|
|
|
|
|
|
def test_overlap_marker_is_flagged_in_both_renderings() -> None:
|
|
"""POSITIVE: the marker overlap key ``(P1, _MARKER_ID)`` reaches BOTH the human table AND the
|
|
JSON ``overlaps`` list. RED if ``build_value_report`` stops surfacing ``ledger.overlaps()``."""
|
|
report = build_value_report(_overlap_ledger())
|
|
|
|
assert ("P1", _MARKER_ID) in report.overlaps
|
|
assert _MARKER_ID in format_report_text(report) # flagged in the rendered table
|
|
|
|
payload = json.loads(dump_report_json(report))
|
|
assert ["P1", _MARKER_ID] in payload["overlaps"] # flagged in the JSON (tuple -> list)
|
|
|
|
|
|
def test_overlap_amount_counted_once_not_doubled() -> None:
|
|
"""CONTROL: the cross-dimension overlap is counted ONCE in the portfolio total, never doubled.
|
|
RED if the ledger's dimension-free dedup is bypassed (the total would become ``2 * _MARKER_ORE``
|
|
= 117834). This is the exact double-count the ledger's dedup was built to prevent."""
|
|
report = build_value_report(_overlap_ledger())
|
|
|
|
assert report.portfolio_total_ore == _MARKER_ORE # once, NOT 2 * _MARKER_ORE
|
|
assert report.per_project["P1"] == _MARKER_ORE
|