code: def test_als_predict_no_user_features_basic():
      ratings = lktu.ml_test.ratings
      np.random.seed(45)
      u = np.random.choice(ratings.user.unique(), 1)[0]
      items = np.random.choice(ratings.item.unique(), 2)
  
      algo = als.ImplicitMF(
          5, iterations=10, method="lu", use_ratings=True
      )
      algo.fit(ratings)
      preds = algo.predict_for_user(u, items)
  
      user_data = ratings[ratings.user == u]
      new_ratings = user_data.set_index("item")["rating"].copy()
  
      algo_no_user_features = als.ImplicitMF(
          5, iterations=10, method="lu", save_user_features=False
      )
      algo_no_user_features.fit(ratings)
      preds_no_user_features = algo_no_user_features.predict_for_user(
          u, items, new_ratings
      )
  
      assert algo_no_user_features.user_features_ is None
      diffs = np.abs(preds.values - preds_no_user_features.values)
      assert all(diffs <= 0.1)
  
imports: import logging
  from lenskit import util
  from lenskit.algorithms import als
  import pandas
  import numpy
  from scipy import stats
  import binpickle
  from seedbank import numpy_rng
  from pytest import mark, approx
  import lenskit.util.test
  from lenskit.algorithms import Recommender
  from lenskit.util import Stopwatch
label_desc: Use image node_id 9 for calling a global function with example usage: test_als_predict_no_user_features_basic() without return types