code: def test_cache_no_func_change(self):
      cache_fp = os.path.abspath("demo.pkl")
      try:
  
          @cache_results(cache_fp)
          def demo():
              print("¥")
              return 1
  
          with Capturing() as output:
              res = demo()
          assert "¥" in output[0]
  
          @cache_results(cache_fp)
          def demo():
              print("¥")
              return 1
  
          with Capturing() as output:
              res = demo()
          assert "¥" not in output[0]
      finally:
          rank_zero_rm("demo.pkl")
  
imports: import os
  import pytest
  import subprocess
  from io import StringIO
  import sys
  from fastNLP.core.utils.cache_results import cache_results
  from fastNLP.envs.distributed import rank_zero_rm
label_desc: Use image node_id 3 for calling the TestCacheResults obj's underlying member method code with example usage: obj.test_cache_no_func_change() and returns: int, int