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']
    for k in ['source_revision_match','dependency_evidence_match','builder_approved','provenance_subject_match','artifact_digest_match','repository_digest_match','signature_valid']:
        assert c[k] in {True,False,None}
    assert c['source_policy_evidence'] in {True,False,None}
    assert isinstance(c['credential_signal_only'],bool)
    assert isinstance(c['evidence_complete'],bool)
    assert 'post_repository_digest_match' in c and 'post_provenance_subject_match' in c
print('PASS learner fixtures: 8 synthetic supply-chain evidence cases')
