| 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}") |