from pathlib import Path
import json, ast
P=Path(__file__).resolve().parent
cases=json.loads((P/'fixtures/cases.json').read_text(encoding='utf-8'))['cases']
assert len(cases)==8
assert len({c['id'] for c in cases})==8
src=(P/'starter.py').read_text(encoding='utf-8')
ast.parse(src)
for c in cases:
    assert 'local_commit' in c and 'remote_ack' in c and 'spool_state' in c
print('PASS learner structural checks: 8 synthetic cases, starter parses, no hidden labels required')
