feat: audit public minute holdout sources
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
||||
from scripts.minute_rectification_source_audit import build_source_audit
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
|
||||
|
||||
def test_source_audit_deduplicates_public_aa_cases_and_reports_missing_evidence(tmp_path):
|
||||
manifest = tmp_path / "cases.json"
|
||||
manifest.write_text(json.dumps({
|
||||
"cases": [
|
||||
{
|
||||
"case_id": "case-a",
|
||||
"subject": {"name": "A", "birth_source": {"url": "https://birth.example/a", "time_accuracy_rating": "AA"}},
|
||||
"event_outcomes": [{"event_date": "2000-01-01"}],
|
||||
},
|
||||
{
|
||||
"case_id": "case-a-duplicate",
|
||||
"subject": {"name": "A", "birth_source": {"url": "https://birth.example/a", "time_accuracy_rating": "AA"}},
|
||||
"event_outcomes": [{"event_date": "2001-01-01"}],
|
||||
},
|
||||
{
|
||||
"case_id": "case-b",
|
||||
"subject": {"name": "B", "birth_source": {"url": "https://birth.example/b", "time_accuracy_rating": "A"}},
|
||||
},
|
||||
],
|
||||
}), encoding="utf-8")
|
||||
|
||||
audit = build_source_audit([manifest])
|
||||
|
||||
assert audit["public_aa_case_count"] == 1
|
||||
assert audit["cases"][0]["subject"] == "A"
|
||||
assert audit["cases"][0]["additional_dated_events_required"] == 1
|
||||
assert audit["cases"][0]["negative_controls_required"] == 4
|
||||
|
||||
|
||||
def test_frozen_source_audit_matches_the_reusable_public_case_manifests():
|
||||
artifact = json.loads((ROOT / "references/real_case_calibration/minute_rectification_public_aa_source_audit_v1.json").read_text(encoding="utf-8"))
|
||||
|
||||
assert artifact == build_source_audit()
|
||||
assert artifact["public_aa_case_count"] == 17
|
||||
assert artifact["additional_public_aa_cases_required"] == 3
|
||||
Reference in New Issue
Block a user