#!/usr/bin/env python3
"""Verify signed definitions and illustrative drivers for FPA-ROLE-20260823."""

from __future__ import annotations

import csv
import pathlib
import sys


def read(name: str) -> list[dict[str, str]]:
    with pathlib.Path(__file__).with_name(name).open(
        newline="", encoding="utf-8"
    ) as handle:
        return list(csv.DictReader(handle))


def main() -> int:
    definitions = read("signed-definitions-FPA-ROLE-20260823.csv")
    drivers = read("driver-table-FPA-ROLE-20260823.csv")
    ids = {row["definition_id"] for row in definitions}
    total = sum(
        int(row["variance_usd_k"])
        for row in drivers
        if row["relationship"] == "total_driver"
    )
    excluded = next(
        row for row in drivers if row["relationship"] == "excluded_from_opex"
    )
    if ids != {"opex_rollup", "close_cutoff", "budget_version"}:
        print("FAIL: signed-definition set is incomplete.", file=sys.stderr)
        return 1
    if total != 345 or excluded["variance_usd_k"] != "60":
        print("FAIL: driver total or exclusion is incorrect.", file=sys.stderr)
        return 1
    print("OK: three definitions, 345 total drivers, and 60 exclusion verified.")
    return 0


if __name__ == "__main__":
    raise SystemExit(main())
