from pathlib import Path
import json
R=Path(__file__).resolve().parent
cases=json.loads((R/'fixtures/cases.json').read_text(encoding='utf-8'))['cases']
assert len(cases)==8
required={'id','claim','evidence','decision_time','provenance_valid','confidence','audit_record'}
claim_required={'claim_id','claim_text','claim_scope','target_version'}
ev_required={'evidence_id','type','supports','contradicts','scope','source_binding_ref','review_due','valid','decisive'}
for case in cases:
    assert required.issubset(case)
    assert claim_required.issubset(case['claim'])
    assert isinstance(case['evidence'],list) and case['evidence']
    for ev in case['evidence']: assert ev_required.issubset(ev)
print('PASS 8/8 learner fixtures structurally valid')
