# Copyright (C) 2025 AIDC-AI # Tests for FeatureExtractor import pytest from pixelle_video.services.quality.feature_extractor import ( FeatureExtractor, FeatureExtractorConfig, ) class TestFeatureExtractorConfig: """Tests for FeatureExtractorConfig""" def test_default_values(self): config = FeatureExtractorConfig() assert config.model_name == "ViT-B/32" assert config.device == "auto" assert config.cache_features is True class TestFeatureExtractor: """Tests for FeatureExtractor""" def test_init_default(self): extractor = FeatureExtractor() assert extractor.config.model_name == "ViT-B/32" def test_is_available_check(self): """Test availability check (may be True or False)""" extractor = FeatureExtractor() # Just check it returns a boolean assert isinstance(extractor.is_available, bool) def test_extract_without_clip(self): """Test graceful degradation when CLIP unavailable""" extractor = FeatureExtractor() if not extractor.is_available: result = extractor.extract_image_features("/fake/path.png") assert result is None def test_clear_cache(self): """Test cache clearing""" extractor = FeatureExtractor() extractor._feature_cache["test"] = "value" extractor.clear_cache() assert len(extractor._feature_cache) == 0