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"]