RSCE / tests /test_cli_report.py
LP1205's picture
Deploy RSCE backend to Hugging Face Space
5e952bb
Raw
History Blame Contribute Delete
2.81 kB
import pytest
import uuid
from src.models.claim import Claim, ClaimType, Polarity, StudyDesign
from src.models.contradiction import ContradictionPair, ContradictionType
from src.models.report import SynthesisReport
from src.presentation.cli_report import print_cli_report
@pytest.fixture
def dummy_report():
claim_a = Claim(
id=uuid.uuid4(),
text="Metformin reduces breast cancer risk.",
paper_id="12345",
authors=["John Smith"],
year=2023,
confidence_score=1.0,
claim_type=ClaimType.CAUSAL,
polarity=Polarity.NEGATIVE,
population="humans",
context="general",
quote_anchor="reduced breast cancer risk",
study_design=StudyDesign.RCT
)
claim_b = Claim(
id=uuid.uuid4(),
text="Metformin increases breast cancer risk.",
paper_id="67890",
authors=["Jane Doe"],
year=2024,
confidence_score=1.0,
claim_type=ClaimType.CAUSAL,
polarity=Polarity.POSITIVE,
population="humans",
context="general",
quote_anchor="increased breast cancer risk",
study_design=StudyDesign.RCT
)
contradiction = ContradictionPair(
claim_a=claim_a,
claim_b=claim_b,
contradiction_score=0.95,
contradiction_type=ContradictionType.DIRECTION_REVERSAL,
explanation="Claim A decreases risk, Claim B increases risk.",
scope_note="No scope mismatch, both human populations.",
is_genuine=True
)
report = SynthesisReport(
summary="Metformin has contradictory effects on breast cancer risk based on recent RCTs.",
contradictions=[contradiction],
consensus_scores={},
total_papers=2,
total_claims=2,
metadata={"time_elapsed": 4.5, "cost_estimate": 0.05}
)
return report
def test_print_cli_report(capsys, dummy_report):
print_cli_report(
report=dummy_report,
query="Does metformin reduce breast cancer risk?",
time_elapsed=4.5,
cost_estimate=0.05
)
captured = capsys.readouterr()
# Check that key sections and text are printed
assert "RESEARCH SYNTHESIS & CONTRADICTION ENGINE" in captured.out
assert "Does metformin reduce breast cancer risk?" in captured.out
assert "Pipeline Execution Statistics" in captured.out
assert "Grounded Synthesis Narrative" in captured.out
assert "Metformin has contradictory effects" in captured.out
assert "Ranked Contradictions Overview" in captured.out
assert "DIRECTION_REVERSAL" in captured.out
assert "GENUINE CONTRADICTION" in captured.out
assert "John Smith" in captured.out
assert "Jane Doe" in captured.out
assert "Claim A decreases risk, Claim B increases risk." in captured.out