#!/usr/bin/env python3
import json
from pathlib import Path
d=json.loads((Path(__file__).parent/"sky130-sram-write-boundary-web-v1.json").read_text())
assert d["experiment_id"]=="SKY130_SRAM_WRITE_BOUNDARY_001"
assert len(d["cases"])==24 and d["verification"]["all_converged"]
assert sum(c["success"] for c in d["cases"])==18
assert sum(not c["success"] for c in d["cases"])==6
assert [b["minimum_successful_wordline_v"] for b in d["boundaries"]]==[1.2,1.2,1.0,1.0]
assert all(c["raw_points"]>=4000 for c in d["cases"])
for c in d["cases"]:
 if c["success"]: assert c["final_q_v"]>1.35 and c["final_qb_v"]<.45 and c["write_delay_ps"] is not None
assert all(d["boundaries"][i+1]["minimum_successful_wordline_v"]<=d["boundaries"][i]["minimum_successful_wordline_v"] for i in range(3))
print("SKY130_SRAM_WRITE_BOUNDARY_001 verified: 24 cases, 18 pass, 6 fail, assist boundary monotonic")
