File size: 613 Bytes
646ccfc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import pytest

from scripts.calibrate_code_margin import select_balanced_accuracy_threshold


def test_threshold_uses_balanced_accuracy_and_separates_both_classes():
    result = select_balanced_accuracy_threshold([0, 0, 1, 1], [-2.0, -1.0, 1.0, 2.0])
    assert result["threshold"] == 0.0
    assert result["balanced_accuracy"] == 1.0
    assert result["safe_accuracy"] == 1.0
    assert result["vulnerable_accuracy"] == 1.0


def test_threshold_rejects_single_class_calibration_data():
    with pytest.raises(ValueError, match="SAFE/VULNERABLE"):
        select_balanced_accuracy_threshold([0, 0], [-1.0, 1.0])