#!/usr/bin/env python3 import hashlib import json import subprocess import unittest from pathlib import Path ROOT = Path(__file__).resolve().parents[1] REPORT = ROOT / "coverage/xyzac-trt-trace-parity.report.json" class XyzacParityTest(unittest.TestCase): @classmethod def setUpClass(cls): subprocess.run(["python3", "scripts/compare_xyzac_native_wasm_trace.py"], cwd=ROOT, check=True) cls.report = json.loads(REPORT.read_text(encoding="utf-8")) def test_verified(self): self.assertEqual(self.report["status"], "verified") self.assertEqual(self.report["native_wasm"]["status"], "verified") self.assertEqual(self.report["native_worker"]["status"], "verified") self.assertEqual(self.report["first_divergent_tick"], None) for comparison in ("native_wasm", "native_worker"): for level in ("protocol", "control", "state", "canonical", "recovery"): self.assertEqual(self.report[comparison]["levels"][level]["status"], "verified") def test_first_divergence_positive_sample(self): sample = self.report["positive_divergence_sample"] self.assertTrue(sample["detected"]) self.assertEqual(sample["first_divergent_tick"], 2) self.assertEqual(sample["difference_path"], "$[1].active_type") def test_self_hash(self): unsigned = dict(self.report) actual = unsigned.pop("report_sha256") self.assertEqual(actual, hashlib.sha256(json.dumps(unsigned, ensure_ascii=False, sort_keys=True, separators=(",", ":")).encode()).hexdigest()) if __name__ == "__main__": unittest.main()