code: def test_spatial_axes(self):
      key = "test"
      rotate = RandRotate90d(keys=key, spatial_axes=(0, 1))
      for p in TEST_NDARRAYS_ALL:
          rotate.set_random_state(234)
          im = {key: p(self.imt[0])}
          call_param = {"data": im}
          rotated = rotate(**call_param)
  
          # test lazy
          test_resampler_lazy(
              rotate,
              rotated,
              call_param=call_param,
              seed=234,
              output_key=key,
          )
          rotate.lazy = False
  
          test_local_inversion(rotate, rotated, im, key)
          expected = [
              np.rot90(channel, 0, (0, 1)) for channel in self.imt[0]
          ]
          expected = np.stack(expected)
          assert_allclose(rotated[key], p(expected), type_test="tensor")
  
file_path: MONAI/tests/test_rand_rotate90d.py
imports: from __future__ import annotations
  import unittest
  import numpy
  import torch
  from monai.data import MetaTensor, set_track_meta
  from monai.transforms import RandRotate90d
  from tests.lazy_transforms_utils import test_resampler_lazy
  from tests.utils import TEST_NDARRAYS_ALL, NumpyImageTestCase2D, assert_allclose, test_local_inversion
label_desc: Use image node_id 3 for calling the TestRandRotate90d obj's underlying member method code with example usage: obj.test_spatial_axes() without return types