"""Tests for gap analysis.""" import pytest from gap_analysis.analyzer import generate_gap_analysis def test_full_compliance(): counts = { "VVT": 1, "TOM": 1, "DSE": 1, "Loeschkonzept": 1, "Richtlinie": 1, "Schulungsnachweis": 1, "AVV": 1, "DSFA": 1, } result = generate_gap_analysis(counts) assert result["compliance_score"] == 100.0 assert len(result["gaps"]) == 0 def test_no_documents(): result = generate_gap_analysis({}) assert result["compliance_score"] == 0.0 assert len(result["gaps"]) > 0 assert result["gap_summary"]["critical"] > 0 def test_partial_compliance(): counts = {"VVT": 1, "TOM": 1} result = generate_gap_analysis(counts) assert 0 < result["compliance_score"] < 100 # DSE, Loeschkonzept, Richtlinie, Schulungsnachweis, AVV, DSFA should be gaps gap_categories = [g["category"] for g in result["gaps"]] assert "DSE" in gap_categories assert "Loeschkonzept" in gap_categories def test_universal_only(): counts = {"VVT": 1, "TOM": 1, "DSE": 1, "Loeschkonzept": 1} result = generate_gap_analysis(counts, company_profiles=["universal"]) # Universal requires VVT, TOM, DSE, Loeschkonzept, Richtlinie, Schulungsnachweis # 4 out of 6 covered assert result["covered"] == 4 assert result["total_required"] == 6 def test_gap_severity(): result = generate_gap_analysis({}, company_profiles=["universal"]) severities = {g["severity"] for g in result["gaps"]} assert "CRITICAL" in severities