code: def test_cache_save(
      self, _refresh, _hash_param, _verbose, _check_hash
  ):
      cache_fp = "demo.pkl"
      try:
  
          @cache_results(
              cache_fp,
              _refresh=_refresh,
              _hash_param=_hash_param,
              _verbose=_verbose,
              _check_hash=_check_hash,
          )
          def demo(a=1):
              print("¥")
              return 1
  
          res = demo()
  
          with Capturing() as output:
              res = demo(a=1)
          if _refresh is False:
              assert "¥" not in output[0]
          if _verbose is 0:
              assert "read" not in output[0]
  
          with Capturing() as output:
              res = demo(1)
          if _refresh is False:
              assert "¥" not in output[0]
  
          with Capturing() as output:
              res = demo(a=2)
          if _hash_param is True:  # 一定对不上，需要重新生成
              assert "¥" in output[0]
  
      finally:
          remove_postfix(".")
  
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 1 for calling the TestCacheResultsWithParam obj's underlying member method code with example usage: obj.test_cache_save(_refresh, _hash_param, _verbose, _check_hash) and returns: int