#!/usr/bin/env python3 """Tests for the Divine Eye calibration harness (Plan 1.3 ยง5). Synthetic pairs, zero token.""" from __future__ import annotations import struct import sys import tempfile import unittest import zlib from pathlib import Path ROOT = Path(__file__).resolve().parent.parent sys.path.insert(0, str(ROOT / "stage4_review")) from calibrate_eye import calibrate, run_corpus, separation # noqa: E402 PNG_SIGNATURE = b"\x89PNG\r\n\x1a\n" def write_rgb_png(path, w, h, pixel_fn): def chunk(tag, data): c = struct.pack(">I", len(data)) + tag + data return c + struct.pack(">I", zlib.crc32(tag + data) & 0xFFFFFFFF) raw = bytearray() for y in range(h): raw.append(0) for x in range(w): raw += bytes(pixel_fn(x, y, w, h)) ihdr = struct.pack(">IIBBBBB", w, h, 8, 2, 0, 0, 0) path.write_bytes(PNG_SIGNATURE + chunk(b"IHDR", ihdr) + chunk(b"IDAT", zlib.compress(bytes(raw), 9)) + chunk(b"IEND", b"")) def block(x0, y0, x1, y1): return lambda x, y, w, h: (40, 40, 40) if (x0 <= x < x1 and y0 <= y < y1) else (255, 255, 255) class CalibrateEyeTest(unittest.TestCase): def setUp(self): self.dir = Path(tempfile.mkdtemp()) self.ref = self.dir / "ref.png" write_rgb_png(self.ref, 200, 200, block(50, 50, 150, 150)) # good render == reference (fidelity 1.0, pass) self.good = self.dir / "good.png" write_rgb_png(self.good, 200, 200, block(50, 50, 150, 150)) # bad render: subject collapsed to a small block (hard-gate reject) self.bad = self.dir / "bad.png" write_rgb_png(self.bad, 200, 200, block(92, 92, 108, 108)) def _corpus(self): return [ {"reference": str(self.ref), "render": str(self.good), "label": "good"}, {"reference": str(self.ref), "render": str(self.bad), "label": "bad"}, ] def test_run_corpus_collects_per_label(self): c = run_corpus(self._corpus()) self.assertEqual(c["signalStats"]["good"]["count"], 1) self.assertEqual(c["signalStats"]["bad"]["count"], 1) self.assertGreater(c["signalStats"]["good"]["fidelityMean"], c["signalStats"]["bad"]["fidelityMean"]) def test_clean_separation_and_acceptable(self): result = calibrate(self._corpus()) sep = result["separation"] self.assertTrue(sep["cleanSeparation"]) self.assertTrue(sep["allGoodPass"]) self.assertTrue(sep["allBadRejected"]) self.assertTrue(sep["corpusAcceptable"]) self.assertIsNotNone(sep["suggestedThreshold"]) def test_corpus_needs_both_classes(self): good_only = [{"reference": str(self.ref), "render": str(self.good), "label": "good"}] sep = separation(run_corpus(good_only)["rows"]) self.assertFalse(sep["corpusAcceptable"]) self.assertIn("warning", sep) def test_report_only_flag_set(self): result = calibrate(self._corpus()) self.assertTrue(result["reportOnly"]) if __name__ == "__main__": unittest.main(verbosity=2)