def test_binclf_multiple_curves(
    preds: torch.Tensor,
    gts: torch.Tensor,
    thresholds: torch.Tensor,
    expected_binclf_curves: torch.Tensor,
) -> None:
    """Test if `binclf_multiple_curves()` returns the expected values."""
    computed = binary_classification_curve(
        preds,
        gts,
        thresholds,
    )
    assert computed.shape == expected_binclf_curves.shape
    assert (computed == expected_binclf_curves).all()

    # it's ok to have the threhsholds beyond the range of the preds
    binary_classification_curve(preds, gts, 2 * thresholds)

    # or inside the bounds without reaching them
    binary_classification_curve(preds, gts, 0.5 * thresholds)

    # it's also ok to have more thresholds than unique values in the preds
    # add the values in between the thresholds
    thresholds_unncessary = 0.5 * (thresholds[:-1] + thresholds[1:])
    thresholds_unncessary = torch.concatenate([thresholds_unncessary, thresholds])
    thresholds_unncessary = torch.sort(thresholds_unncessary)[0]
    binary_classification_curve(preds, gts, thresholds_unncessary)

    # or less
    binary_classification_curve(preds, gts, thresholds[1:3])
Test if `binclf_multiple_curves()` returns the expected values.
tests/unit/metrics/pimo/test_binary_classification_curve.py