code: def test_uu_save_load_implicit(tmp_path):
      "Save and load user-user on an implicit data set."
      orig = knn.UserUser(20, feedback="implicit")
      data = ml_ratings.loc[:, ["user", "item"]]
  
      orig.fit(data)
      ser = pickle.dumps(orig)
  
      algo = pickle.loads(ser)
  
      assert algo.user_means_ is None
      assert all(algo.user_index_ == orig.user_index_)
      assert all(algo.item_index_ == orig.item_index_)
  
      assert all(
          algo.rating_matrix_.rowptrs == orig.rating_matrix_.rowptrs
      )
      assert all(
          algo.rating_matrix_.colinds == orig.rating_matrix_.colinds
      )
      assert all(
          algo.rating_matrix_.values == orig.rating_matrix_.values
      )
  
      assert all(
          algo.transpose_matrix_.rowptrs
          == orig.transpose_matrix_.rowptrs
      )
      assert all(
          algo.transpose_matrix_.colinds
          == orig.transpose_matrix_.colinds
      )
      assert algo.transpose_matrix_.values is None
  
imports: from lenskit.algorithms import Recommender
  import lenskit.algorithms.user_knn
  from lenskit.util import clone
  from pathlib import Path
  import logging
  import pickle
  import pandas
  import numpy
  from scipy.sparse import linalg
  from pytest import approx, mark
  import lenskit.util.test
label_desc: Use image node_id 14 for calling a global function with example usage: test_uu_save_load_implicit(tmp_path) without return types