ProCreations's picture
repair claims 3-6: falsifications from the paper's own tables, seeded runs for 5-6
988e5c8 verified
Raw
History Blame Contribute Delete
2.28 kB
#!/usr/bin/env python3
from __future__ import annotations
import hashlib,json,os,subprocess,sys,tempfile
from pathlib import Path
r=Path(__file__).resolve().parent
load=lambda p:json.loads((r/p).read_text(encoding="utf-8"))
claims=load("CLAIMS.json");official=load("official_claims.json");matrix=load("EVIDENCE_MATRIX.json")
out=load("outputs/results.json");a=load("replay_a/results.json");b=load("replay_b/results.json");p=load("packaged_replay/results.json")
assert claims==official and len(claims)==6
assert out==a==b==p
assert out["summary"]=={"all_pass":True,"challenge_points":10,"conservative_points":8,"falsified":2,"seeded_pairs":300000,"toy":2,"verified":2}
assert matrix["release_quality_gate"]["status"]=="pass_6_of_6_decisive_with_two_literal_toys"
assert matrix["release_quality_gate"]["expected_verified_points"]==8
expected_assessments=["verified","verified","falsified","falsified","toy","toy"]
for i,(literal,result,row) in enumerate(zip(claims,out["claims"],matrix["claims"]),1):
assert result["claim"]==row["claim"]==i and result["literal_claim"]==row["literal_claim"]==literal
assert result["assessment"]==row["assessment"]==expected_assessments[i-1] and result["pass"] is True
assert row["paper_or_released_scale"] is (i <= 4)
if i<=2:
assert row["registered_system_executed"] is True and row["actual_model_or_dataset_used"] is True
else:
assert row["registered_system_executed"] is False
assert load(f"outputs/claim{i}.json")==load(f"replay_a/claim{i}.json")==load(f"replay_b/claim{i}.json")==load(f"packaged_replay/claim{i}.json")==result
assert (r/f"pages/claim-{i}/page.md").is_file()
for rel,digest in out["source"]["tex_sha256"].items():
assert hashlib.sha256((r/"source/tex"/rel).read_bytes()).hexdigest()==digest,rel
env=dict(os.environ,PYTHONDONTWRITEBYTECODE="1",PYTHONHASHSEED="0",PYTHONWARNINGS="error")
with tempfile.TemporaryDirectory(prefix="tablelong-validator-") as td:
subprocess.run([sys.executable,"-W","error",str(r/"reproduce.py"),"--out",td],check=True,env=env,stdout=subprocess.DEVNULL)
assert (Path(td)/"results.json").read_bytes()==(r/"outputs/results.json").read_bytes()
print(json.dumps({"status":"pass","claims":6,"conservative_points":8,"paired_replay":"byte-identical","seeded_pairs":300000},sort_keys=True))