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['id'] and c['a_to_b'] and c['b_to_a']
    assert isinstance(c['request_sent'],bool) and isinstance(c['response_seen'],bool)
    assert c['remote_effect'] in {'CONFIRMED','NOT_OBSERVED','UNKNOWN','REJECTED'}
    assert isinstance(c['deadline_ms'],int) and c['deadline_ms']>0
    assert isinstance(c['retry_count'],int) and isinstance(c['retry_budget'],int)
    assert isinstance(c['evidence_complete'],bool) and isinstance(c['post_probe_ok'],bool)
print('PASS learner fixtures: 8 synthetic network-partition cases')
