code: def test_caching(self):
      function_mock = Mock(side_effect=[1, 2])
      cache = LRUCache(function_mock, max_size=2)
  
      self.assertEqual(cache("key1"), 1)
      self.assertEqual(cache("key2"), 2)
  
      # Test will fail if the cache calls the function mock again
      self.assertEqual(cache("key2"), 2)
      self.assertEqual(cache("key1"), 1)
      self.assertEqual(cache("key1"), 1)
  
file_path: pgmpy/pgmpy/tests/test_estimators/test_ScoreCache.py
imports: import unittest
  from mock import Mock, MagicMock, call
  from pgmpy.estimators.ScoreCache import LRUCache, ScoreCache
  from pgmpy.estimators import BicScore
  import pandas
label_desc: Use image node_id 1 for calling the TestScoreCache obj's underlying member method code with example usage: obj.test_caching() without return types