import json
from pathlib import Path
from evaluator import evaluate
cases=json.loads((Path(__file__).parent/'fixtures/cases.json').read_text())['cases']
allowed={'APPROVED_REVISION_BOUND','CHANGES_REQUESTED','REJECTED','HOLD_MISSING_EVIDENCE','BLOCKED_STALE_APPROVAL','BLOCKED_CROSS_BRANCH_APPROVAL','BLOCKED_UNAUTHORIZED_SUPERSESSION','DISPUTED_CONFLICT','PARTIAL_SCOPE_REOPENED','PARTIAL_MERGE_PENDING'}
for c in cases:
    out=evaluate(c)
    assert set(out)=={'state','evidence_complete','revision_binding_valid','branch_binding_valid','authority_valid','conflict_resolved'}
    assert out['state'] in allowed
    print(c['id'],out['state'])
print(f"PASS learner harness: {len(cases)} fixtures")
