class_docstr: Mixin to test a bunch of common functionality in models
  deriving from RecommenderBase
code: def test_evaluation(self):
      item_users = get_checker_board(50)
      user_items = item_users.T.tocsr()
  
      model = self._get_model()
      model.fit(item_users, show_progress=False)
  
      # we've withheld the diagonal for testing, and have verified that in test_recommend
      # it is returned for each user. So p@1 should be 1.0
      p = precision_at_k(
          model,
          user_items.tocsr(),
          csr_matrix(np.eye(50)),
          K=1,
          show_progress=False,
      )
      self.assertEqual(p, 1)
  
imports: import os
  import pickle
  import random
  import tempfile
  import numpy
  import pytest
  from numpy.testing import assert_array_equal
  from scipy.sparse import coo_matrix, csr_matrix
  from implicit.evaluation import precision_at_k
  from implicit.nearest_neighbours import ItemItemRecommender
  from implicit.utils import ParameterWarning
label_desc: Use image node_id 5 for calling the RecommenderBaseTestMixin obj's underlying member method code with example usage: obj.test_evaluation() without return types