import json
from pathlib import Path
from evaluator import evaluate
r=Path(__file__).resolve().parent
d=json.loads((r/'fixtures/cases.json').read_text(encoding='utf-8'))
required={'experiment_state','decision','observation_hypothesis_separated','change_isolated','assignment_valid','rules_predeclared','causal_claim_allowed','control_reason'}
for c in d['cases']:
    out=evaluate(c,d['evaluation_time'])
    assert set(out)==required
    print(c['case_id'], out['experiment_state'], out['decision'])
print('PASS',len(d['cases']),'fixtures')
