import json
from pathlib import Path
from starter import evaluate
cases=json.loads((Path(__file__).parent/'fixtures/cases.json').read_text(encoding='utf-8'))['cases']
required={'decision','reason','next_action','due_or_recheck'}
for c in cases:
    try:r=evaluate(c)
    except NotImplementedError:
        print('Starter is intentionally incomplete. Implement evaluate(case) first.'); raise SystemExit(2)
    assert isinstance(r,dict) and required<=set(r), c['id']
    assert r['decision'] in {'ACTIVE_ACTION','BLOCKED','DEFERRED','REVIEW_REQUIRED','CLOSED_WON','CLOSED_LOST','NO_ACTION_REQUIRED'}, c['id']
    if r['decision']=='ACTIVE_ACTION': assert r['next_action'], c['id']
    if r['decision']=='DEFERRED': assert r['due_or_recheck'], c['id']
print('Learner shape/safety checks passed for',len(cases),'cases')
