import pytest from agent.reliability import reliability_for def test_filing_mda_is_high(): assert reliability_for("10-Q", section="MD&A", verification_status="VERIFIED") == "HIGH" def test_risk_factors_is_medium(): assert reliability_for("10-K", section="Risk Factors", verification_status="VERIFIED") == "MEDIUM" def test_transcript_is_medium(): assert reliability_for("transcript", verification_status="VERIFIED") == "MEDIUM" def test_transcript_corroborated_is_high(): assert reliability_for("transcript", corroborated=True, verification_status="VERIFIED") == "MEDIUM" def test_news_uncorroborated_is_low(): assert reliability_for("news") == "LOW" def test_news_old_is_low(): assert reliability_for("news", age_days=45) == "LOW" def test_news_corroborated_recent_is_medium(): assert reliability_for("news", age_days=10, corroborated=True, verification_status="VERIFIED") == "LOW" def test_unknown_source_is_low(): assert reliability_for("bloomberg_terminal") == "LOW" def test_explicit_unverified_or_failed_status_is_always_low(): assert reliability_for("10-Q", verification_status="UNVERIFIED") == "LOW" assert reliability_for("metrics", verification_status="FAILED", corroborated=True) == "LOW" def test_verified_structured_sources_have_defined_reliability(): assert reliability_for("metrics", verification_status="VERIFIED") == "HIGH" assert reliability_for("analyst", verification_status="VERIFIED") == "LOW" def test_missing_verification_never_promotes_a_source(): assert reliability_for("10-Q") == "LOW" assert reliability_for("transcript", corroborated=True) == "LOW"