code: def test_cache(self):
      def predict_fn(inputs):
          return inputs
  
      # add 10 items, expect last 3 items in cache
      uuids = [uuid4() for i in range(10)]
      for uuid in uuids:
          ModelCache.add(uuid, predict_fn)
  
      self.assertTrue(len(ModelCache._models) == 3)
      self.assertTrue(list(ModelCache._models.keys()) == uuids[7:10])
  
      # get item, expect it to become most recently used
      _ = ModelCache.get(uuids[8])
      expected_uuids = uuids[7:8] + uuids[9:10] + [uuids[8]]
      self.assertTrue(list(ModelCache._models.keys()) == expected_uuids)
  
file_path: spark/python/pyspark/ml/tests/test_model_cache.py
imports: import unittest
  from uuid import uuid4
  from pyspark.ml.model_cache import ModelCache
  from pyspark.testing.mlutils import SparkSessionTestCase
label_desc: Use image node_id 2 for calling the ModelCacheTests obj's underlying member method code with example usage: obj.test_cache() and returns: inputs