feat(runtime): implement single-article consolidation runtime and modularize codebase

This commit is contained in:
2026-08-24 00:14:07 -03:00
parent e1e0be1353
commit 23de7d8fe7
176 changed files with 266754 additions and 10179 deletions
+37
View File
@@ -0,0 +1,37 @@
"""Unit tests for ECP classification adapter covering scenarios ECP-001 to ECP-009."""
from src.runtime.ecp.adapter import ECPClassificationAdapter
def test_ecp_adapter_direct_inherent():
adapter = ECPClassificationAdapter()
sample_ecp = {
"target_entity_id": "Q12345",
"target_name": "Club Atlético River Plate",
"aliases": ["River Plate", "River"],
"domain": "sports",
"anchors": ["Monumental", "Buenos Aires"],
}
content = "# River vs Santa Fe\n\nRiver Plate jugó un gran partido en el estadio Monumental de Buenos Aires."
res = adapter.classify(sample_ecp, content)
assert res["category"] == "DIRECT_INHERENT"
assert res["is_inherent"] is True
assert res["confidence"] > 0.8
assert len(res["evidences"]) > 0
def test_ecp_adapter_not_related():
adapter = ECPClassificationAdapter()
sample_ecp = {
"target_entity_id": "Q12345",
"target_name": "Club Atlético River Plate",
"aliases": ["River Plate"],
"domain": "sports",
"anchors": ["Monumental"],
}
content = "# Gastronomia Francesa\n\nReceita de croissant e baguetes na culinária tradicional de Paris."
res = adapter.classify(sample_ecp, content)
assert res["category"] == "NOT_RELATED"
assert res["is_inherent"] is False