hermes-association-engine / tests /test_embedder.py
feiertu's picture
Upload tests/test_embedder.py with huggingface_hub
de388a4 verified
Raw
History Blame Contribute Delete
1.4 kB
"""测试 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