# Formulišite i napišite definiciju šta je roc auc.
# Kako se računa roc_auc_score?
# Napišite funkciju koja računa roc_auc_score prema napisanoj definiciji.
# A za proizvoljan broj klasa sa datim redosledom prioriteta?
# Model radi na sledeći način
# y_score[i] >= prag -> y_pred[i] = 1
# y_score[i] < prag -> 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
# Бонус тестове за повече класове
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