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:
    for k in ['evidence_complete','expected_event','premium_tier','availability_floor_met_after_guardrail']:
        assert isinstance(c[k],bool)
    for k in ['baseline_workload','current_workload']:
        assert isinstance(c[k],int) and c[k]>0
    for k in ['baseline_cost','current_cost','retry_factor','egress_multiplier','budget_threshold']:
        assert isinstance(c[k],(int,float)) and c[k]>=0
    assert c['budget_control'] in {'alerts_only','spend_cap_supported'}
    assert c['proposed_guardrail'] in {'admission_control','none','disable_retries','hard_shutdown','alert_only','observe','egress_admission'}
print('PASS learner fixtures: 8 cost-runaway cases')
