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