Spaces:
Runtime error
Runtime error
| """Tests unitaires pour dog_breed_classifier/features.py.""" | |
| import numpy as np | |
| import pytest | |
| from PIL import Image | |
| from dog_breed_classifier.features import extract_visual_features | |
| EXPECTED_KEYS = {"brightness", "contrast", "saturation", "R", "G", "B"} | |
| def test_extract_visual_features_keys(sample_image): | |
| result = extract_visual_features(sample_image) | |
| assert set(result.keys()) == EXPECTED_KEYS | |
| def test_extract_visual_features_values_in_range(sample_image): | |
| result = extract_visual_features(sample_image) | |
| for key, value in result.items(): | |
| assert 0.0 <= value <= 1.0, f"{key}={value} hors de [0, 1]" | |
| def test_extract_visual_features_rounded(sample_image): | |
| result = extract_visual_features(sample_image) | |
| for key, value in result.items(): | |
| assert value == round(value, 4), f"{key} n'est pas arrondi à 4 décimales" | |
| def test_extract_visual_features_pure_red(): | |
| """Image rouge pur → R élevé, G et B proches de 0.""" | |
| red_image = Image.new("RGB", (50, 50), color=(255, 0, 0)) | |
| result = extract_visual_features(red_image) | |
| assert result["R"] > 0.9 | |
| assert result["G"] < 0.05 | |
| assert result["B"] < 0.05 | |
| def test_extract_visual_features_pure_white(): | |
| """Image blanche → brightness proche de 1, contrast proche de 0.""" | |
| white_image = Image.new("RGB", (50, 50), color=(255, 255, 255)) | |
| result = extract_visual_features(white_image) | |
| assert result["brightness"] > 0.95 | |
| assert result["contrast"] < 0.05 | |
| def test_extract_visual_features_pure_black(): | |
| """Image noire → brightness proche de 0.""" | |
| black_image = Image.new("RGB", (50, 50), color=(0, 0, 0)) | |
| result = extract_visual_features(black_image) | |
| assert result["brightness"] < 0.05 | |
| def test_extract_visual_features_accepts_non_rgb(): | |
| """La fonction doit convertir les images non-RGB sans erreur.""" | |
| rgba_image = Image.new("RGBA", (50, 50), color=(100, 150, 200, 128)) | |
| result = extract_visual_features(rgba_image) | |
| assert set(result.keys()) == EXPECTED_KEYS | |