class_docstr: Mixin to test a bunch of common functionality in models
  deriving from RecommenderBase
code: def test_fit_callback(self):
      model = self._get_model()
  
      num_called = 0
  
      def callback(*args, **kwargs):
          nonlocal num_called
          num_called += 1
  
      try:
          model.fit(
              get_checker_board(5),
              show_progress=False,
              callback=callback,
          )
      except NotImplementedError:
          # callback isn't supported w/ ItemItem KNN models
          return
  
      assert num_called >= 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 23 for calling the RecommenderBaseTestMixin obj's underlying member method code with example usage: obj.test_fit_callback() without return types