import json
from pathlib import Path
from starter import evaluate
P=Path(__file__).resolve().parent
cases=json.loads((P/'fixtures/cases.json').read_text(encoding='utf-8'))['cases']
allowed={'EVIDENCE_CLOSED','REVIEW_REQUIRED','BLOCKED','DEFERRED'}
for c in cases:
    r=evaluate(c)
    assert isinstance(r,dict)
    assert r.get('decision') in allowed
    assert isinstance(r.get('reason'),str) and r['reason'].strip()
    assert r.get('person_id') in {None,c.get('person_id')}
    assert set(r.get('relationship_ids') or []).issubset({x.get('relationship_id') for x in c.get('relationships',[])})
print(f'PASS learner shape/safety checks on {len(cases)} cases')
