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['conflict_surface'] in {'none','bounded','core','security','unknown'}
    assert c['sync_probe'] in {'clean','conflict','not_run'}
    for k in ['baseline_scope_defined','acceptance_criteria_complete','rebaseline_completed','fork_exists','fork_temporary','duplicated_tests','maintenance_owner','supported_extension_available','contract_requires_isolation','sunset_condition']:
        assert isinstance(c[k],bool)
    for k in ['changes_total','approved_changes','ahead_count','behind_count']:
        assert isinstance(c[k],int) and c[k]>=0
    assert c['approved_changes']<=c['changes_total']
print('PASS learner fixtures: 8 scope/fork cases')
