from pathlib import Path
import json
R=Path(__file__).resolve().parent
cases=json.loads((R/'fixtures/cases.json').read_text(encoding='utf-8'))['cases']
req={'id','record_version','provenance','routes'}
rr={'route','route_version','locale','http_status','redirect_target','redirect_class','method_preservation','canonical_intent','canonical_target','indexability','robots_state','sitemap_membership','hreflang_ref','target_exists','canonical_target_exists','chain_length','redirect_loop','signal_conflict','audit_probe_complete','adjacent_form_ok'}
assert len(cases)==8
for c in cases:
 assert req.issubset(c) and c['routes']
 assert all(rr.issubset(r) for r in c['routes'])
print('PASS 8/8 learner fixture structural checks')
