Aperture / tests /test_confidence.py
KSvend
fix: address code review — memory, dedup, confidence, zoom, overview
7daf007
"""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