import json
from pathlib import Path
from evaluator import evaluate
cases=json.loads((Path(__file__).parent/'fixtures/cases.json').read_text())['cases']
for c in cases:
    out=evaluate(c)
    assert set(out)=={'state','evidence_complete','side_effect_safe','revision_binding_valid','idempotency_safe','replayable'}
    assert out['state'] in {'READY_FOR_HUMAN_RELEASE_REVIEW','HOLD_MISSING_EVIDENCE','BLOCKED_SIDE_EFFECT','BLOCKED_STALE_APPROVAL','BLOCKED_IDEMPOTENCY','BLOCKED_ASSERTION','PARTIAL_AUDIT_GAP','BLOCKED_SCOPE'}
    print(c['id'], out['state'])
print(f"PASS learner harness: {len(cases)} fixtures")
