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
for c in cases:
    assert c['compatibility_probe'] in {'MATCH','MISMATCH','UNSUPPORTED_VERSION','UNKNOWN'}
    assert c['version_state'] in {'SUPPORTED','RETIRED','UNKNOWN'}
    assert isinstance(c['status_code'],int) and 100 <= c['status_code'] <= 599
    assert c['quota_usage_pct'] is None or 0 <= c['quota_usage_pct'] <= 200
    assert c['retry_after_ms'] is None or c['retry_after_ms'] >= 0
    assert isinstance(c['fallback_qualified'],bool)
    assert isinstance(c['closure_contract_ok'],bool)
    assert isinstance(c['closure_provider_ok'],bool)
print('PASS learner fixtures: 8 provider drift/quota cases')
