| import pytest |
| import numpy as np |
| import uuid |
| from src.models.claim import Claim, ClaimType, Polarity, StudyDesign |
| from src.detection.embedder import ClaimEmbedder |
|
|
| def test_embedder_single(): |
| embedder = ClaimEmbedder(model_name="all-MiniLM-L6-v2") |
| text = "Metformin reduces cancer incidence." |
| |
| embedding = embedder.embed_single(text) |
| |
| assert isinstance(embedding, np.ndarray) |
| assert embedding.dtype == np.float32 |
| assert embedding.shape == (384,) |
| |
| |
| norm = np.linalg.norm(embedding) |
| assert pytest.approx(norm, abs=1e-5) == 1.0 |
|
|
| def test_embedder_batch(): |
| embedder = ClaimEmbedder(model_name="all-MiniLM-L6-v2") |
| |
| claims = [ |
| Claim( |
| id=uuid.uuid4(), |
| text="Metformin reduces breast cancer cell growth.", |
| paper_id="123", |
| year=2024, |
| confidence_score=1.0, |
| claim_type=ClaimType.CAUSAL, |
| polarity=Polarity.NEGATIVE, |
| population="human cell lines", |
| context="in vitro", |
| quote_anchor="Metformin inhibits breast cancer cell growth", |
| study_design=StudyDesign.IN_VITRO |
| ), |
| Claim( |
| id=uuid.uuid4(), |
| text="Metformin activates AMPK pathways.", |
| paper_id="123", |
| year=2024, |
| confidence_score=1.0, |
| claim_type=ClaimType.MECHANISTIC, |
| polarity=Polarity.POSITIVE, |
| population="human cell lines", |
| context="in vitro", |
| quote_anchor="AMPK activation", |
| study_design=StudyDesign.IN_VITRO |
| ) |
| ] |
| |
| embeddings = embedder.embed_claims(claims) |
| |
| assert isinstance(embeddings, np.ndarray) |
| assert embeddings.dtype == np.float32 |
| assert embeddings.shape == (2, 384) |
| |
| |
| norm_1 = np.linalg.norm(embeddings[0]) |
| norm_2 = np.linalg.norm(embeddings[1]) |
| assert pytest.approx(norm_1, abs=1e-5) == 1.0 |
| assert pytest.approx(norm_2, abs=1e-5) == 1.0 |
|
|