Spaces:
Paused
Paused
File size: 1,981 Bytes
d4d5551 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | """Shared fixtures: isolated runs/studio2 root + a fresh registry."""
from __future__ import annotations
import pytest
from sensorflow.studio2 import store as studio2_store
from sensorflow.studio2.registry import Registry
@pytest.fixture(autouse=True)
def studio2_env(tmp_path):
studio2_store.set_studio2_root(str(tmp_path / "studio2"))
yield
studio2_store.set_studio2_root("runs/studio2")
@pytest.fixture()
def registry():
return Registry()
# ------------------------------------------------------------------ planted
# release-gate inputs shaped exactly like the real engines' outputs
@pytest.fixture()
def passing_safety():
return {"decision": "RELEASE_READY", "blocking_gates": [],
"candidate_run_id": "eval-test", "baseline_run_id": "eval-base",
"evidence_package_id": "sep-eval-test", "gates": []}
@pytest.fixture()
def blocked_safety():
return {"decision": "BLOCKED", "blocking_gates": ["safety"],
"candidate_run_id": "eval-test", "baseline_run_id": "eval-base",
"evidence_package_id": "sep-eval-test", "gates": []}
@pytest.fixture()
def passing_seqeval():
return {"run_id": "seq-test", "gate": "ALLOW", "decision": "PASS",
"stopping_reason": "pass_confirmed", "samples_used": 4200,
"affected_strata": [], "regression_map": []}
@pytest.fixture()
def regressed_seqeval():
return {"run_id": "seq-test", "gate": "BLOCK", "decision": "REGRESSION",
"stopping_reason": "regression_confirmed", "samples_used": 6100,
"affected_strata": ["stratum:pedestrian|night"],
"regression_map": [{"stratum": "pedestrian|night", "delta": -0.05}]}
@pytest.fixture()
def clean_shift():
return {"run_id": "eval-test", "shifts": []}
@pytest.fixture()
def bad_shift():
return {"run_id": "eval-test", "shifts": [
{"cohort": "pedestrian/fog/night", "relative_change": 1.6,
"recall_gap": -0.11, "eval_count": 900}]}
|