CharlesCNorton
Image-level person classification on EUPE-ViT-B features with no free parameters
e8b8483 | """Every committed artifact matches the schema its generator declares.""" | |
| import pytest | |
| from common.artifacts import REGISTRY | |
| from conftest import REPO, load | |
| def test_artifact_exists(rel): | |
| assert (REPO / rel).exists(), f'{rel} is registered but missing' | |
| def test_artifact_opens_with_provenance(rel): | |
| doc = load(rel) | |
| assert next(iter(doc)) == 'provenance', f'{rel} does not open with provenance' | |
| def test_artifact_payload_keys(rel): | |
| spec = REGISTRY[rel] | |
| got = tuple(k for k in load(rel) if k != 'provenance') | |
| assert got == spec.payload_keys, f'{rel} payload {got} != declared {spec.payload_keys}' | |
| def test_artifact_generator(rel): | |
| assert load(rel)['provenance']['generator'] == REGISTRY[rel].generator | |
| def test_artifact_pool(rel): | |
| spec = REGISTRY[rel] | |
| pool = load(rel)['provenance'].get('pool') | |
| if spec.pool is not None: | |
| assert pool == spec.pool, f'{rel} names pool {pool!r}, registry says {spec.pool!r}' | |
| def test_selection_and_evaluation_read_different_splits(): | |
| """No figure may be measured on the images that chose it.""" | |
| sel = load('rules.json')['provenance'] | |
| ev = load('eval.json')['provenance'] | |
| assert sel['split'] == 'train2017' | |
| assert ev['split'] == 'val2017' | |
| assert sel['split'] != ev['split'] | |