#!/usr/bin/env python3
import copy,json
from pathlib import Path
import validate_trace as v
ROOT=Path(__file__).resolve().parent
rows=v.load_jsonl(ROOT/"fixtures"/"synthetic-trace.jsonl")
assert v.validate_rows(rows)["status"]=="PASS"
bad=copy.deepcopy(rows)
bad[-1]["cold_read"]["history_blinded"]=False
try:
    v.validate_rows(bad)
    raise AssertionError("history blindness failure not rejected")
except ValueError:
    pass
bad=copy.deepcopy(rows)
bad[0]["global_opacity_score"]=0.9
try:
    v.validate_rows(bad)
    raise AssertionError("sovereign score not rejected")
except ValueError:
    pass
protocol=json.loads((ROOT/"protocol-v0.1.json").read_text(encoding="utf-8"))
assert protocol["relation_to_TGPT"]["confirmatory_use"]=="FORBIDDEN"
assert protocol["rules"]["no_language_optimization"] is True
assert protocol["rules"]["no_global_opacity_score"] is True
ex=json.loads((ROOT/"experiments-v0.1.json").read_text(encoding="utf-8"))
assert [x["id"] for x in ex["experiments"]]==["UCF-36","UCF-37","UCF-38"]
print("ULTRACON_SEM_LAB_V0_1_SELFTEST_OK")
