3d_model / tests /test_audit_split_hygiene.py
Azan
Clean deployment build (Squashed)
7a87926
from ylff.services.audit.audit_runner import run_audit
from ylff.services.audit.models import ExternalReferenceMeasurement, OperatingRegime
def _m(capture_id: str, *, err: float, sigma: float):
return ExternalReferenceMeasurement(
capture_id=capture_id,
regime=OperatingRegime.INDOOR_CONSTRAINED,
measurement_type="tag_to_tag",
d_pred=10.0 + float(err),
d_star=10.0,
sigma_d=float(sigma),
)
def test_run_audit_splits_by_capture_id_scene_disjoint():
# Two scenes, multiple measurements each. Ensure split happens at scene granularity.
ms = []
for _ in range(10):
ms.append(_m("scene_a", err=0.1, sigma=0.2))
ms.append(_m("scene_b", err=0.1, sigma=0.2))
res = run_audit(ms, calibrate=True, calibration_split_fraction=0.5)
split = res.summary.get("split", {})
assert split.get("mode") in ("scene_stratified_by_regime", "row_fallback")
if split.get("mode") == "scene_stratified_by_regime":
assert split["num_scenes_total"] == 2
assert split["num_scenes_cal"] + split["num_scenes_audit"] == 2
def test_dataset_level_gate_2b_enforced_only_when_calibrated():
# If calibration set ends up empty (e.g., only one scene and rounding), Gate 2b is skipped.
ms = [_m("scene_only", err=0.2, sigma=0.05) for _ in range(20)]
res = run_audit(ms, calibrate=True, calibration_split_fraction=0.5)
gates = {g.name: g for g in res.gates}
assert "gate_2b_dataset_level_coverage" in gates
# Skipped OR enforced is fine; what we require is the gate exists and is reported.
assert isinstance(gates["gate_2b_dataset_level_coverage"].details, dict)