Spaces:
Sleeping
Sleeping
File size: 1,275 Bytes
d5ea245 | 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 | """
Tests for face recognition module
"""
import pytest
import numpy as np
from pathlib import Path
from face_matcher.core.recognition import FaceEmbeddingExtractor
class TestFaceEmbeddingExtractor:
"""Tests for FaceEmbeddingExtractor"""
@pytest.fixture
def extractor(self, project_root):
"""Create extractor instance"""
model_path = project_root / "models/MobileFaceNet.onnx"
if not model_path.exists():
pytest.skip("Model file not found")
return FaceEmbeddingExtractor(str(model_path))
def test_extractor_initialization(self, extractor):
"""Test extractor initializes successfully"""
assert extractor is not None
assert extractor.input_size == (112, 112)
def test_extract_embedding_shape(self, extractor, sample_image):
"""Test embedding has correct shape"""
embedding = extractor.extract_embedding(sample_image)
assert embedding.shape == (128,)
assert embedding.dtype == np.float32
def test_embedding_normalized(self, extractor, sample_image):
"""Test embedding is L2 normalized"""
embedding = extractor.extract_embedding(sample_image)
norm = np.linalg.norm(embedding)
assert np.isclose(norm, 1.0, atol=1e-5)
|