code: def test_hash_key():
      class Bad1:
          def __hash__(self):
              return 329
  
      class Bad2:
          def __hash__(self):
              return 329
  
      b1 = Bad1()
      b2 = Bad2()
  
      assert b1 != b2
  
      @cached({}, key=hash_key)
      def some_func(x):
          return x
  
      assert some_func(b1) != some_func(b2)
  
      class TestClass:
          @locally_cachedmethod
          def some_method(self, x):
              return x
  
      tc = TestClass()
      assert tc.some_method(b1) != tc.some_method(b2)
  
imports: import re
  import arviz
  import numpy
  import pytest
  import xarray
  from cachetools import cached
  import pymc
  from pymc.distributions.transforms import Transform
  from pymc.util import UNSET, _get_seeds_per_chain, dataset_to_point_list, drop_warning_stat, get_value_vars_from_user_vars, hash_key, hashable, locally_cachedmethod
label_desc: Use image node_id 2 for calling a global function with example usage: test_hash_key() and returns: x, int, int, x