"""Tests for three-factor confidence scoring.""" import pytest def test_score_temporal_coverage(): from app.analysis.confidence import score_temporal_coverage assert score_temporal_coverage(0) == 0.25 assert score_temporal_coverage(3) == 0.25 assert score_temporal_coverage(5) == 0.5 assert score_temporal_coverage(8) == 0.75 assert score_temporal_coverage(12) == 1.0 def test_score_baseline_depth(): from app.analysis.confidence import score_baseline_depth assert score_baseline_depth(1) == 0.25 assert score_baseline_depth(3) == 0.5 assert score_baseline_depth(4) == 0.75 assert score_baseline_depth(5) == 1.0 def test_score_spatial_completeness(): from app.analysis.confidence import score_spatial_completeness assert score_spatial_completeness(0.3) == 0.25 assert score_spatial_completeness(0.6) == 0.5 assert score_spatial_completeness(0.85) == 0.75 assert score_spatial_completeness(0.95) == 1.0 def test_compute_confidence_high(): from app.analysis.confidence import compute_confidence from app.models import ConfidenceLevel result = compute_confidence( valid_months=12, baseline_years_with_data=5, spatial_completeness=0.95, ) assert result["level"] == ConfidenceLevel.HIGH assert result["score"] > 0.7 def test_compute_confidence_low(): from app.analysis.confidence import compute_confidence from app.models import ConfidenceLevel result = compute_confidence( valid_months=2, baseline_years_with_data=1, spatial_completeness=0.3, ) assert result["level"] == ConfidenceLevel.LOW assert result["score"] < 0.4 def test_compute_confidence_returns_factors(): from app.analysis.confidence import compute_confidence result = compute_confidence( valid_months=6, baseline_years_with_data=3, spatial_completeness=0.8, ) assert "factors" in result factors = result["factors"] assert "temporal" in factors assert "baseline_depth" in factors assert "spatial_completeness" in factors