tracegrpo / tests /test_pairwise_unary_stack.py
Dhruv1000's picture
Archive complete TraceGRPO project results and documentation (2026-10-09)
646ccfc verified
Raw History Blame Contribute Delete
901 Bytes
import numpy as np
from scripts.run_pairwise_unary_stack import score_metrics
def test_stacked_metrics_compute_per_class_accuracy_and_pair_pass():
y = np.array([0, 1, 0, 1], dtype=np.int8)
pred = np.array([0, 1, 1, 0], dtype=np.int8)
result = score_metrics(y, pred, pair_count=2)
assert result["accuracy"] == 0.5
assert result["safe_accuracy"] == 0.5
assert result["vulnerable_accuracy"] == 0.5
assert result["pair_pass_at_1"] == 0.5
assert result["pair_pass_wilson_95"] is not None
def test_stacked_metrics_track_single_class_collapse():
y = np.array([0, 1, 0, 1], dtype=np.int8)
pred = np.zeros(4, dtype=np.int8)
result = score_metrics(y, pred, pair_count=2)
assert result["safe_accuracy"] == 1.0
assert result["vulnerable_accuracy"] == 0.0
assert result["predicted_vulnerable_fraction"] == 0.0
assert result["pair_pass_at_1"] == 0.0