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
assert len({c['id'] for c in cases})==8
for c in cases:
    assert c['qa_profile'] and c['candidate_id'] and c['candidate_digest'].startswith('sha256:')
    assert c['rights_status'] in ('ACTIVE','EXPIRED','UNKNOWN','REVOKED')
    assert c['approval_state'] in ('APPROVED','PENDING','REJECTED')
assert any(c['codec_expected']!=c['codec_observed'] for c in cases)
assert any(c['message_intent_match'] is False for c in cases)
assert any(c['rights_status']=='EXPIRED' for c in cases)
assert any(c['captions_required'] and not c['captions_ok'] for c in cases)
assert any(not c['composition_ok'] for c in cases)
assert any(c['semantic_evidence']=='UNKNOWN' for c in cases)
assert any(c.get('transfer') for c in cases)
print('PASS 8/8 synthetic media-QA fixture checks')
