"""测试 embedder 模块.""" import pytest from hermes_core.embedder import Embedder pytestmark = pytest.mark.requires_embedder class TestEmbedder: @pytest.fixture def embedder(self): return Embedder() def test_encode_returns_384_dim_vector(self, embedder): vec = embedder.encode("后端API开发") assert isinstance(vec, list) assert len(vec) == 384 assert all(isinstance(v, float) for v in vec) def test_encode_batch_returns_same_count(self, embedder): texts = ["后端开发", "前端开发", "游戏开发"] vecs = embedder.encode_batch(texts) assert len(vecs) == 3 assert all(len(v) == 384 for v in vecs) def test_similar_texts_have_high_similarity(self, embedder): a = embedder.encode("后端API开发") b = embedder.encode("后端服务开发") sim = embedder.cosine_similarity(a, b) assert sim > 0.5 def test_different_texts_have_low_similarity(self, embedder): a = embedder.encode("后端API开发") b = embedder.encode("周末去哪玩") sim = embedder.cosine_similarity(a, b) assert sim < 0.5 def test_identical_texts_have_similarity_one(self, embedder): a = embedder.encode("TypeScript") b = embedder.encode("TypeScript") sim = embedder.cosine_similarity(a, b) assert sim > 0.99