# Formulujte a napíšte definíciu toho, čo je roc auc.
# Ako sa počíta roc_auc_score?
# Napíšte funkciu, ktorá vypočíta roc_auc_score podľa napísanej definície.
# A pre ľubovoľný počet tried s daným poradím priorít?
# Model funguje nasledovne
# y_score[i] >= prah -> y_pred[i] = 1
# y_score[i] < prah -> y_pred[i] = 0
def test_roc_aur_score():
y_true = [0, 0, 0, 1, 0, 0]
y_score = [0.2, 0.4, 0.31, 0.6, 0.3, 0.7]
res_metric = roc_auc_score(y_true, y_score)
assert res_metric == 0.8
y_true = [0, 1, 0, 0, 0, 1]
y_score = [0.7, 0.6, 0.31, 0.31, 0.3, 0.2]
res_metric = roc_auc_score(y_true, y_score)
assert res_metric == 0.375
y_true = [0, 0, 0, 1, 0, 0]
y_score = [0.2, 0.4, 0.31, 0.8, 0.3, 0.7]
res_metric = roc_auc_score(y_true, y_score)
assert res_metric == 1
y_true = [0, 0, 0, 0, 0, 0]
y_score = [0.2, 0.4, 0.31, 0.8, 0.3, 0.7]
res_metric = roc_auc_score(y_true, y_score)
assert res_metric == 0
# Bonus testy pre viac tried
y_true = [0, 1, 0, 0.5, 0, 1]
y_score = [0.7, 0.6, 0.31, 0.31, 0.3, 0.2]
res_metric = roc_auc_score(y_true, y_score)
assert res_metric == 0.
y_true = [0, 0.1, 0.2, 0.3, 0.4, 0.6]
y_score = [0, 0.1, 0.2, 0.3, 0.4, 0.6]
res_metric = roc_auc_score(y_true, y_score)
assert res_metric == 1