code: def test_cached_code(self):
      kernel = cupy.ReductionKernel(
          "T x", "T y", "x", "a + b", "y = a", "0", name="cached_code"
      )
      assert len(kernel._cached_codes) == 0
      x = cupy.arange(10)
      kernel(x)
      assert len(kernel._cached_codes) == 1
      kernel(x)
      assert len(kernel._cached_codes) == 1
      kernel(x.astype(cupy.float32))
      assert len(kernel._cached_codes) == 2
  
imports: import unittest
  import numpy
  import pytest
  import cupy
  import cupy._core._accelerator
  from cupy import _core
  from cupy import testing
label_desc: Use image node_id 2 for calling the TestReductionKernelCachedCode obj's underlying member method code with example usage: obj.test_cached_code() without return types