|
|
import pytest |
|
|
import numpy as np |
|
|
from app import YOLOv8Model, preprocess_frame |
|
|
import cv2 |
|
|
|
|
|
def test_yolo_model_initialization(): |
|
|
"""Test YOLO model can be initialized""" |
|
|
try: |
|
|
model = YOLOv8Model() |
|
|
assert model.model is not None, "YOLO model should be initialized" |
|
|
except Exception as e: |
|
|
pytest.skip(f"Model initialization failed: {e}") |
|
|
|
|
|
def test_preprocess_frame(): |
|
|
"""Test frame preprocessing""" |
|
|
|
|
|
frame = np.random.randint(0, 255, (480, 640, 3), dtype=np.uint8) |
|
|
processed = preprocess_frame(frame) |
|
|
|
|
|
assert processed.shape == (640, 640, 3), "Processed frame should be 640x640x3" |
|
|
assert processed.dtype == np.uint8, "Processed frame should be uint8" |
|
|
|
|
|
def test_yolo_prediction(): |
|
|
"""Test YOLO prediction on dummy image""" |
|
|
try: |
|
|
model = YOLOv8Model() |
|
|
|
|
|
image = np.random.randint(0, 255, (640, 640, 3), dtype=np.uint8) |
|
|
results = model.predict(image) |
|
|
assert results is not None, "YOLO prediction should return results" |
|
|
except Exception as e: |
|
|
pytest.skip(f"YOLO prediction test failed: {e}") |