compare M4.7 threat parity by component identity

This commit is contained in:
DCCONSTRUCTIONS
2026-08-23 20:39:16 +03:00
parent bcda5d001a
commit 4ac07f7671
2 changed files with 65 additions and 7 deletions
@@ -134,10 +134,15 @@ def compare_reference_graph_to_accepted_ledgers(
]
if observed_camera_uncertainty != expected_camera_uncertainty:
mismatch["camera_uncertainty"] += 1
if [item.to_dict() for item in delivery.threats] != _array(
threat,
"assessments",
):
observed_assessments = _assessment_index(
[item.to_dict() for item in delivery.threats],
"graph threat assessments",
)
expected_assessments = _assessment_index(
_array(threat, "assessments"),
"accepted threat assessments",
)
if observed_assessments != expected_assessments:
mismatch["threat_assessments"] += 1
compared += 1
if temporal_stream.readline() or threat_stream.readline():
@@ -204,6 +209,19 @@ def _boolean(document: dict[str, object], key: str) -> bool:
return value
def _assessment_index(
rows: list[dict[str, object]],
label: str,
) -> dict[str, dict[str, object]]:
indexed: dict[str, dict[str, object]] = {}
for row in rows:
component_id = _string(row, "component_id")
if component_id in indexed:
raise ReferenceGraphParityError(f"{label} contains a duplicate component")
indexed[component_id] = row
return indexed
__all__ = [
"REFERENCE_GRAPH_PARITY_SCHEMA",
"ReferenceGraphParityError",