"""Check published aggregate arithmetic. This does not re-extract private sources."""
import csv,json
from pathlib import Path
p=Path(__file__).resolve().parent
d=json.loads((p/'aggregate-results.json').read_text())
rows={r['metric']:r for r in d['results']}
for r in rows.values():
 if r['denominator'] is not None:
  assert 0 <= r['count'] <= r['denominator']
  assert round(100*r['count']/r['denominator'],1)==r['percent']
assert sum(rows[k]['count'] for k in ['llms_text_retrieved','llms_HTTP_missing','llms_deferred','llms_empty','llms_HTML'])==d['sample']['requested_domains']
assert sum(rows[k]['count'] for k in ['inventory_policy_both_permit','inventory_policy_both_exclude','inventory_policy_unknown'])==rows['inventory_policy_assessable']['denominator']
with (p/'aggregate-results.csv').open(newline='') as f:
 csv_rows=list(csv.DictReader(f))
assert len(csv_rows)==len(rows)
for r in csv_rows:
 expected=rows[r['metric']]
 for k,v in r.items():assert v==('' if expected[k] is None else str(expected[k])),(r['metric'],k)
print('Aggregate CSV/JSON agreement and arithmetic passed. Source observations remain privately held.')
