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
required_case={'id','name','node_id','device_id','driver_version','workload_label','collector_config','sample_timestamp','policy','metrics'}
required_metrics={'gpu_util','fb_used_pct','gpu_temp_c','board_power_w','enc_util','dec_util','xid_error_count'}
required_metric_fields={'value','unit','available','sample_age_seconds','sample_window_seconds'}
for c in cases:
    assert required_case.issubset(c), (c.get('id'), required_case-set(c))
    assert required_metrics == set(c['metrics']), (c['id'], set(c['metrics']))
    for m in c['metrics'].values(): assert required_metric_fields.issubset(m)
print('PASS 8/8 learner fixtures structurally ready')
