import json
from pathlib import Path
from starter import normalize
P=Path(__file__).resolve().parent
cases=json.loads((P/'fixtures/cases.json').read_text(encoding='utf-8'))['cases']
for c in cases:
    r=normalize(c)
    assert isinstance(r,dict)
    assert r.get('ingest_decision') in {'NORMALIZED','QUARANTINED'}
    assert r.get('identity_state')=='UNRESOLVED'
    assert isinstance(r.get('reason'),str) and r['reason'].strip()
    assert isinstance(r.get('unsupported_fields'),list)
    assert r.get('channel')==c.get('channel')
print(f'PASS learner shape/boundary checks on {len(cases)} cases')
