Extract shared build_metric_registry factory (DRY)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
wangwei
2026-07-01 17:52:55 +08:00
co-authored by Copilot
parent 4a646b6b9c
commit 2bb804b059
8 changed files with 1053 additions and 34 deletions
+27
View File
@@ -0,0 +1,27 @@
"""Tests for the shared metric registry factory."""
from unittest.mock import MagicMock
from ragas.llms.base import InstructorBaseRagasLLM
from ragas.embeddings.base import BaseRagasEmbedding
from rag_eval.metrics.factory import build_metric_registry
def _mock_llm():
"""Return a mock that passes RAGAS InstructorLLM type checks."""
return MagicMock(spec=InstructorBaseRagasLLM)
def _mock_emb():
"""Return a mock that passes RAGAS embedding type checks."""
return MagicMock(spec=BaseRagasEmbedding)
def test_build_metric_registry_has_all_seven_metrics():
"""The registry exposes every supported metric keyed by its canonical name."""
registry = build_metric_registry(llm=_mock_llm(), embeddings=_mock_emb())
assert set(registry) == {
"faithfulness", "answer_relevancy", "context_recall", "context_precision",
"noise_sensitivity", "factual_correctness", "semantic_similarity",
}