from __future__ import annotations import argparse import json from pathlib import Path from typing import Any ROOT = Path(__file__).resolve().parents[1] DEFAULT_JSON = ROOT / "Temp" / "formula_runtime_registry_v1.json" def _load_json(path: Path) -> dict[str, Any]: if not path.exists(): return {} try: obj = json.loads(path.read_text(encoding="utf-8")) except Exception: return {} return obj if isinstance(obj, dict) else {} def main() -> int: ap = argparse.ArgumentParser() ap.add_argument("--json", default=str(DEFAULT_JSON)) ap.add_argument("--target-coverage", type=float, default=100.0) args = ap.parse_args() json_path = Path(args.json) if not json_path.is_absolute(): json_path = ROOT / json_path payload = _load_json(json_path) errors: list[str] = [] formula_id = str(payload.get("formula_id") or "") total = int(payload.get("formula_total") or 0) declared = int(payload.get("declared_runtime_count") or 0) pct = float(payload.get("runtime_adjusted_coverage_pct") or 0.0) unmapped = int(payload.get("unmapped_formula_count") or 0) rows = payload.get("rows") if formula_id != "FORMULA_IMPLEMENTATION_REGISTRY_V1": errors.append(f"formula_id={formula_id}") if total <= 0: errors.append("formula_total<=0") if declared != total: errors.append(f"declared_runtime_count={declared}, formula_total={total}") if pct < float(args.target_coverage): errors.append(f"runtime_adjusted_coverage_pct={pct:.2f} < {args.target_coverage:.2f}") if unmapped != 0: errors.append(f"unmapped_formula_count={unmapped}") if not isinstance(rows, list) or len(rows) != total: errors.append("rows_invalid") if errors: print("FORMULA_IMPLEMENTATION_REGISTRY_V1_FAIL") for err in errors: print(f" {err}") return 1 print("FORMULA_IMPLEMENTATION_REGISTRY_V1_OK") print(f" formula_total: {total}") print(f" runtime_adjusted_coverage_pct: {pct:.2f}%") print(" unmapped_formula_count: 0") return 0 if __name__ == "__main__": raise SystemExit(main())