code: def test_prob_k_spatial_axes(self):
      rotate = Rotate90(k=2, spatial_axes=(0, 1))
      for p in TEST_NDARRAYS_ALL:
          im = p(self.imt[0])
          call_param = {"img": im}
          rotated = rotate(**call_param)
  
          # test lazy
          test_resampler_lazy(rotate, rotated, call_param=call_param)
          rotate.lazy = False
  
          test_local_inversion(rotate, rotated, im)
          expected = [
              np.rot90(channel, 2, (0, 1)) for channel in self.imt[0]
          ]
          expected = np.stack(expected)
          assert_allclose(
              rotated,
              p(expected),
              rtol=1.0e-5,
              atol=1.0e-8,
              type_test="tensor",
          )
  
imports: from __future__ import annotations
  import unittest
  import numpy
  from parameterized import parameterized
  from monai.data import MetaTensor, set_track_meta
  from monai.transforms import Affine, Rotate90
  from monai.transforms.lazy.functional import apply_pending
  from monai.utils import optional_import
  from tests.lazy_transforms_utils import test_resampler_lazy
  from tests.utils import TEST_NDARRAYS_ALL, NumpyImageTestCase2D, NumpyImageTestCase3D, assert_allclose, test_local_inversion
label_desc: Use image node_id 4 for calling the TestRotate90 obj's underlying member method code with example usage: obj.test_prob_k_spatial_axes() without return types