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:
    for k in ['worker_id','current_identity_generation','message_identity_generation','heartbeat_age_s','liveness_window_s','inventory_age_s','inventory_ttl_s','service_health']:
        assert k in c
print('PASS learner structural checks: 8 synthetic cases, starter parses, no hidden labels required')
