code: def test_python_logloss(rating_true_binary, rating_pred_binary):
      assert logloss(
          rating_true=rating_true_binary,
          rating_pred=rating_true_binary,
          col_prediction=DEFAULT_RATING_COL,
      ) == pytest.approx(0, TOL)
  
      assert logloss(
          rating_true=rating_true_binary,
          rating_pred=rating_pred_binary,
          col_rating=DEFAULT_RATING_COL,
          col_prediction=DEFAULT_PREDICTION_COL,
      ) == pytest.approx(0.7835, TOL)
  
imports: import numpy
  import pandas
  import pytest
  from unittest.mock import Mock
  from sklearn.preprocessing import minmax_scale
  from pandas.testing import assert_frame_equal
  from recommenders.utils.constants import DEFAULT_USER_COL, DEFAULT_ITEM_COL, DEFAULT_RATING_COL, DEFAULT_PREDICTION_COL
  from recommenders.evaluation.python_evaluation import _check_column_dtypes, merge_rating_true_pred, merge_ranking_true_pred, rmse, mae, rsquared, exp_var, get_top_k_items, precision_at_k, recall_at_k, ndcg_at_k, map_at_k, map, auc, logloss, user_diversity, diversity, historical_item_novelty, novelty, user_item_serendipity, user_serendipity, serendipity, catalog_coverage, distributional_coverage, ColumnMismatchError, ColumnTypeMismatchError
label_desc: Use image node_id 18 for calling a global function with example usage: test_python_logloss(rating_true_binary, rating_pred_binary) without return types