class_docstr: Mixin to test a bunch of common functionality in models
  deriving from RecommenderBase
code: def test_fit_ordering(self):
      # models should return scores that are decreasing in value
      samples = 1000
      user_count = 100
      item_count = 200
  
      rng = np.random.RandomState(10)
      itemids = rng.randint(0, item_count, size=samples, dtype=np.int32)
      userids = rng.randint(0, user_count, size=samples, dtype=np.int32)
  
      likes = coo_matrix((np.ones(samples), (userids, itemids))).tocsr()
  
      model = self._get_model()
  
      model.fit(likes, show_progress=False)
      for userid in userids:
          ids, scores = model.recommend(userid, likes[userid])
          print(ids, scores)
          assert np.all(np.diff(scores) <= 0)
  
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 14 for calling the RecommenderBaseTestMixin obj's underlying member method code with example usage: obj.test_fit_ordering() without return types