✔ Web Crypto SHA-256 matches Node for ASCII and Unicode (9.842325ms)
✔ fixture is exactly the stored Python model output (1.776059ms)
✔ original input byte hash is retained (0.35174ms)
✔ invalid row counts and review counts are rejected (1.568423ms)
✔ malformed source records, flags and row numbers are rejected (2.802654ms)
✔ export and confirmation are refused before review (1.297813ms)
✔ review retains every row, duplicate ID, ambiguous amount and abstention (3.557754ms)
✔ digest binds exact complete exported UTF-8 document (1.565287ms)
✔ wrong digest cannot unlock export (1.865602ms)
✔ mutation of returned review cannot change export (2.875246ms)
✔ mutation of constructor input cannot change snapshot (5.729954ms)
✔ another review invalidates earlier confirmation (1.59123ms)
✔ reset invalidates digest and export permission (1.572273ms)
✔ reset during hashing cannot resurrect a stale review (2.344763ms)
✔ overlapping reviews cannot replace the newest digest (0.348978ms)
✔ hash failure fails closed (0.24498ms)
✔ static page wiring and default disabled gates are present (0.88914ms)
✔ browser source uses local assets and no network or HTML injection APIs (2.428126ms)
✔ 204 exported-forest scores match scikit-learn within 1e-8 (6.378168ms)
✔ live normal and extreme examples produce distinct review decisions (0.297138ms)
✔ ambiguous, zero and overflowing browser inputs fail explicitly (0.570673ms)
✔ review, inspect, confirm and export retain exact report bytes (17.348191ms)
✔ reset and another review revoke UI export permission (6.29207ms)
✔ live UI presets and changed inputs cannot leave a stale result visible (3.477082ms)
ℹ tests 24
ℹ suites 0
ℹ pass 24
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 178.400514
