balanced_accuracy / test_balanced_accuracy.py
antonioalegria's picture
Fixed sklearn import and added test skeleton.
9342485
test_cases = [
{
"predictions": [0, 1, 0, 1, 0, 1],
"references": [0, 1, 0, 1, 0, 1],
"sample_weight": None,
"adjusted": False,
"result": {"balanced_accuracy": 0}
},
{
"predictions": [0, 0, 1, 1, 1, 1],
"references": [0, 0, 0, 0, 1, 1],
"sample_weight": None,
"adjusted": False,
"result": {"balanced_accuracy": 0}
},
{
"predictions": [0, 1, 1, 0, 1, 2],
"references": [0, 1, 2, 0, 1, 2],
"sample_weight": None,
"adjusted": False,
"result": {"balanced_accuracy": 0}
},
{
"predictions": [0, 0, 1, 2, 1, 2],
"references": [0, 0, 0, 0, 1, 2],
"sample_weight": None,
"adjusted": False,
"result": {"balanced_accuracy": 0}
},
{
"predictions": [0, 1, 1, 0, 0, 1],
"references": [0, 1, 0, 1, 0, 1],
"sample_weight": [0.5, 0.7, 0.8, 0.9, 1.0, 0.6],
"adjusted": False,
"result": {"balanced_accuracy": 0}
},
{
"predictions": [0, 1, 1, 0, 0, 1],
"references": [0, 1, 0, 1, 0, 1],
"sample_weight": None,
"adjusted": True,
"result": {"balanced_accuracy": 0}
},
]
import pytest
from evaluate import load
from sklearn.metrics import balanced_accuracy_score
@pytest.mark.parametrize("test_case", test_cases)
def test_balanced_accuracy(test_case):
metric = load("hyperml/balanced_accuracy")
result = metric.compute(
predictions=test_case["predictions"],
references=test_case["references"],
sample_weight=test_case["sample_weight"],
adjusted=test_case["adjusted"]
)
assert result["balanced_accuracy"] == balanced_accuracy_score(y_pred=test_case["predictions"], y_true=test_case["references"], sample_weight=test_case["sample_weight"], adjusted=test_case["adjusted"])
assert result == test_case["result"]