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])