# Formulujte a napište definici toho, co je roc auc.
# Jak se počítá roc_auc_score?
# Napište funkci, která vypočítá roc_auc_score podle napsané definice.
# A pro libovolný počet tříd s daným pořadím priority?
# Model funguje následovně
# y_score[i] >= práh -> y_pred[i] = 1
# y_score[i] < práh -> 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
# Bonusové testy pro více tříd
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