code: def test_evaluate_in_batches(
      model,
      is_available_mock,
      test_implicit_interactions,
      test_implicit_predicted_scores,
      metrics,
      batch_size,
  ):
      model.side_effect = partial(
          get_model_scores, scores=test_implicit_predicted_scores
      )
      is_available_mock.return_value = False
      # need to do this for the Mock in order for the metrics to be on the right device
      model.device = "cpu"
  
      mapk_score, mrr_score, auc_score = evaluate_in_batches(
          metric_list=[mapk, mrr, auc],
          test_interactions=test_implicit_interactions,
          model=model,
          k=4,
          batch_size=batch_size,
      )
  
      np.testing.assert_almost_equal(mapk_score, metrics["mapk"])
      np.testing.assert_almost_equal(mrr_score, metrics["mrr"])
      np.testing.assert_almost_equal(auc_score, metrics["auc"])
  
imports: import copy
  from functools import partial
  import re
  from unittest import mock
  import numpy
  import pytest
  from sklearn.metrics import roc_auc_score
  import torch
  import torchmetrics
  from collie.metrics import _get_evaluate_in_batches_device, _get_labels, _get_user_item_pairs, auc, evaluate_in_batches, explicit_evaluate_in_batches, get_preds, mapk, mrr
label_desc: Use image node_id 14 for calling a global function with example usage: test_evaluate_in_batches(model, is_available_mock, test_implicit_interactions, test_implicit_predicted_scores, metrics, batch_size) without return types