38 lines
1.4 KiB
Python
38 lines
1.4 KiB
Python
from pathlib import Path
|
|
|
|
|
|
ROOT = Path(__file__).resolve().parents[2]
|
|
|
|
|
|
def test_detection_workflow_does_not_auto_select_runtime_model_assets() -> None:
|
|
hook = (ROOT / "frontend" / "src" / "hooks" / "useDetectionWorkflow.ts").read_text(encoding="utf-8")
|
|
|
|
assert "const activeAsset = assetResponse.items.find" not in hook
|
|
assert "setSelectedModelAssetId(activeAsset?.model_asset_id ?? '')" not in hook
|
|
assert "setSelectedModelAssetId(assetResponse.items[0]" not in hook
|
|
assert "setSelectedModelAssetId('')" in hook
|
|
|
|
|
|
def test_detection_lab_explains_explicit_model_asset_and_threshold_selection() -> None:
|
|
lab = (ROOT / "frontend" / "src" / "components" / "detection" / "DetectionLab.tsx").read_text(
|
|
encoding="utf-8"
|
|
)
|
|
|
|
assert "Explicit model asset" in lab
|
|
assert "No model file is selected automatically" in lab
|
|
assert "Current benchmark candidate" in lab
|
|
assert "geointel-building-yolov8s-hardneg160r4e50-pt" in lab
|
|
assert "Recommended starting threshold" in lab
|
|
assert "0.25" in lab
|
|
assert "will_download_models" in lab
|
|
|
|
|
|
def test_detection_run_readiness_requires_explicit_asset_when_local_assets_exist() -> None:
|
|
lab = (ROOT / "frontend" / "src" / "components" / "detection" / "DetectionLab.tsx").read_text(
|
|
encoding="utf-8"
|
|
)
|
|
|
|
assert "detectionHasExplicitModelAsset" in lab
|
|
assert "Select a local model asset deliberately" in lab
|
|
assert "local model asset" in lab
|