"""Tests for confidence scoring.""" import pytest from src.reporting.confidence import ConfidenceScorer from src.core.models import Issue, IssueCategory, ScanResult, SeverityLevel class TestConfidenceScorer: """Tests for ConfidenceScorer class.""" def test_scorer_initialization(self): """Test scorer creates instance.""" scorer = ConfidenceScorer() assert scorer is not None def test_calculate_perfect_score(self): """Test 100 score for no issues.""" scorer = ConfidenceScorer() result = ScanResult(issues=[], files_scanned=5) score = scorer.calculate(result) assert score == 100 def test_calculate_with_issues(self): """Test score calculation with issues.""" scorer = ConfidenceScorer() issues = [ Issue( category=IssueCategory.SECURITY, severity=SeverityLevel.HIGH, file_path="test.py", line_number=1, message="Test issue", ) ] result = ScanResult(issues=issues, files_scanned=1) score = scorer.calculate(result) assert score < 100 assert score >= 0 def test_score_not_negative(self): """Test score doesn't go below 0.""" scorer = ConfidenceScorer() issues = [ Issue( category=IssueCategory.SECURITY, severity=SeverityLevel.CRITICAL, file_path="test.py", line_number=1, message="Test issue", ) for _ in range(10) ] result = ScanResult(issues=issues, files_scanned=1) score = scorer.calculate(result) assert score >= 0