import pytest import numpy as np from shell_history_search.core.embeddings import EmbeddingService class TestEmbeddingService: @pytest.fixture def service(self): return EmbeddingService() def test_encode_single(self, service): embedding = service.encode_single("test command") assert isinstance(embedding, np.ndarray) assert len(embedding) == 384 def test_encode_consistency(self, service): emb1 = service.encode_single("test command") emb2 = service.encode_single("test command") assert np.allclose(emb1, emb2) def test_encode_different_commands(self, service): emb1 = service.encode_single("command one") emb2 = service.encode_single("command two") assert not np.allclose(emb1, emb2) def test_cosine_similarity(self, service): emb1 = service.encode_single("list files") emb2 = service.encode_single("show directory contents") similarity = EmbeddingService.cosine_similarity(emb1, emb2) assert -1.0 <= similarity <= 1.0