AVIS / tests /test_detector.py
X2-0's picture
HF Clean Deploy
1c0c94d
Raw
History Blame Contribute Delete
1.51 kB
"""Detector wiring: configurable confidence should flow into the YOLO call."""
from __future__ import annotations
from core.detect import YoloDetector
class _FakeTensor:
def __init__(self, values):
self._values = values
def tolist(self):
return list(self._values)
def __iter__(self):
return iter(self._values)
def __getitem__(self, idx):
if idx == 0:
return self
raise IndexError(idx)
class _FakeBox:
def __init__(
self, cls_id: int, conf: float, xyxy: tuple[float, float, float, float]
) -> None:
self.cls = cls_id
self.conf = conf
self.xyxy = _FakeTensor(xyxy)
class _FakeResult:
names = {0: "person", 3: "motorcycle"}
orig_shape = (100, 200)
def __init__(self) -> None:
self.boxes = [_FakeBox(3, 0.12, (1.0, 2.0, 30.0, 40.0))]
class _FakeModel:
def __init__(self) -> None:
self.calls: list[dict[str, object]] = []
def __call__(self, image_path: str, **kwargs):
self.calls.append({"image_path": image_path, **kwargs})
return [_FakeResult()]
def test_yolo_detector_uses_configured_confidence() -> None:
model = _FakeModel()
detector = YoloDetector("unused.pt", conf=0.05)
detector._model = model
result = detector.detect("frame.jpg")
assert model.calls == [{"image_path": "frame.jpg", "verbose": False, "conf": 0.05}]
assert len(result.detections) == 1
assert result.detections[0].label == "motorcycle"