Spaces:
Sleeping
Sleeping
solidprivacy-nl commited on
Commit ·
48ed660
1
Parent(s): 59f9173
Assert v11.1 candidate categories
Browse files
tests/test_candidate_scanner_regression.py
CHANGED
|
@@ -2,6 +2,7 @@ from candidate_scanner import scan_unmasked_candidates
|
|
| 2 |
from test_cases.legal_regression_cases import (
|
| 3 |
CANDIDATE_SCANNER_TEXT,
|
| 4 |
EXPECTED_CANDIDATES,
|
|
|
|
| 5 |
NEGATIVE_VALUES,
|
| 6 |
)
|
| 7 |
|
|
@@ -14,6 +15,18 @@ def test_candidate_scanner_finds_expected_reference_like_values():
|
|
| 14 |
assert not missing, f"Expected candidates were not found: {sorted(missing)}"
|
| 15 |
|
| 16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 17 |
def test_candidate_scanner_does_not_suggest_known_false_positives():
|
| 18 |
rows = scan_unmasked_candidates(CANDIDATE_SCANNER_TEXT, analyzer_results=[])
|
| 19 |
found = {row["text"] for row in rows}
|
|
@@ -29,9 +42,11 @@ def test_candidate_scanner_preserves_context_by_returning_value_only():
|
|
| 29 |
assert "reparatienummer REP-2026-4410" not in found
|
| 30 |
assert "intern incidentnummer INC-2026-0912" not in found
|
| 31 |
assert "kenteken XX123X" not in found
|
|
|
|
| 32 |
assert "REP-2026-4410" in found
|
| 33 |
assert "INC-2026-0912" in found
|
| 34 |
assert "XX123X" in found
|
|
|
|
| 35 |
|
| 36 |
|
| 37 |
def test_candidate_scanner_respects_existing_analyzer_spans():
|
|
|
|
| 2 |
from test_cases.legal_regression_cases import (
|
| 3 |
CANDIDATE_SCANNER_TEXT,
|
| 4 |
EXPECTED_CANDIDATES,
|
| 5 |
+
EXPECTED_CANDIDATE_TYPES,
|
| 6 |
NEGATIVE_VALUES,
|
| 7 |
)
|
| 8 |
|
|
|
|
| 15 |
assert not missing, f"Expected candidates were not found: {sorted(missing)}"
|
| 16 |
|
| 17 |
|
| 18 |
+
def test_candidate_scanner_assigns_expected_reference_categories():
|
| 19 |
+
rows = scan_unmasked_candidates(CANDIDATE_SCANNER_TEXT, analyzer_results=[])
|
| 20 |
+
by_text = {row["text"]: row["entity_type"] for row in rows}
|
| 21 |
+
|
| 22 |
+
mismatches = {
|
| 23 |
+
value: {"expected": expected_type, "actual": by_text.get(value)}
|
| 24 |
+
for value, expected_type in EXPECTED_CANDIDATE_TYPES.items()
|
| 25 |
+
if by_text.get(value) != expected_type
|
| 26 |
+
}
|
| 27 |
+
assert not mismatches, f"Candidate type mismatches: {mismatches}"
|
| 28 |
+
|
| 29 |
+
|
| 30 |
def test_candidate_scanner_does_not_suggest_known_false_positives():
|
| 31 |
rows = scan_unmasked_candidates(CANDIDATE_SCANNER_TEXT, analyzer_results=[])
|
| 32 |
found = {row["text"] for row in rows}
|
|
|
|
| 42 |
assert "reparatienummer REP-2026-4410" not in found
|
| 43 |
assert "intern incidentnummer INC-2026-0912" not in found
|
| 44 |
assert "kenteken XX123X" not in found
|
| 45 |
+
assert "KvK-nummer vennootschap: 76543210" not in found
|
| 46 |
assert "REP-2026-4410" in found
|
| 47 |
assert "INC-2026-0912" in found
|
| 48 |
assert "XX123X" in found
|
| 49 |
+
assert "76543210" in found
|
| 50 |
|
| 51 |
|
| 52 |
def test_candidate_scanner_respects_existing_analyzer_spans():
|