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={'blender_version','build_identity','expected_blend_digest','observed_blend_digest','expected_script_digest','observed_script_digest','assets_present','environment_ready','cli_order_valid','embedded_code_required','autoexec_enabled','source_trusted','timeout','exit_code','artifact_exists','expected_artifact_digest','observed_artifact_digest','artifact_metadata_match'}
for c in cases:
    assert required.issubset(c), (c['id'], required-set(c))
print('PASS 8/8 learner fixtures structurally ready')
