Files
duocthu/ingestion/tests/test_entities_catalog.py
T

41 lines
1.4 KiB
Python

from pathlib import Path
import pytest
from ingestion.entities.catalog import build_entities
DATA = Path(__file__).parents[1] / "data"
PDF = DATA / "raw/duoc-thu-quoc-gia-viet-nam-2018.pdf"
MONOGRAPHS = DATA / "processed/monographs.jsonl"
needs_source = pytest.mark.skipif(
not PDF.exists() or not MONOGRAPHS.exists(),
reason="source corpus artifacts are not available",
)
@needs_source
def test_verified_entity_catalog_maps_every_explicit_see_alias():
payload = build_entities(MONOGRAPHS, PDF)
stats = payload["stats"]
assert stats["entity_count"] == 684
assert stats["back_index_see_relations"] == 344
assert stats["back_index_aliases_mapped"] == 344
assert stats["back_index_aliases_unresolved"] == 0
assert stats["back_index_aliases_ambiguous"] == 0
assert stats["trade_name_sections"] == 492
@needs_source
def test_common_parenthesized_names_are_emitted_as_aliases():
payload = build_entities(MONOGRAPHS, PDF)
entities = {item["drug_id"]: item for item in payload["entities"]}
aliases = {
drug_id: {alias.casefold() for alias in entity["aliases"]}
for drug_id, entity in entities.items()
}
assert "paracetamol" in aliases["paracetamol_acetaminophen"]
assert "acetaminophen" in aliases["paracetamol_acetaminophen"]
assert "aspirin" in aliases["acid_acetylsalicylic_aspirin"]
assert "oresol" in aliases["thuoc_uong_bu_nuoc_va_ien_giai"]