code: def test_explicit_evaluate_in_batches(
      model,
      is_available_mock,
      test_explicit_interactions,
      test_explicit_predicted_scores,
      metrics,
  ):
      model.side_effect = partial(
          get_model_scores, scores=test_explicit_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"
  
      mse_score, mae_score = explicit_evaluate_in_batches(
          metric_list=[
              torchmetrics.MeanSquaredError(),
              torchmetrics.MeanAbsoluteError(),
          ],
          test_interactions=test_explicit_interactions,
          model=model,
          num_workers=0,
      )
  
      np.testing.assert_almost_equal(mse_score, metrics["mse"])
      np.testing.assert_almost_equal(mae_score, metrics["mae"])
  
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 16 for calling a global function with example usage: test_explicit_evaluate_in_batches(model, is_available_mock, test_explicit_interactions, test_explicit_predicted_scores, metrics) without return types