code: def test_spatial_axes(self):
      rotate = RandRotate90(spatial_axes=(0, 1), prob=1.0)
      for p in TEST_NDARRAYS_ALL:
          rotate.set_random_state(1234)
          im = p(self.imt[0])
          call_param = {"img": im}
          rotated = rotate(**call_param)
          # test lazy
          test_resampler_lazy(
              rotate, rotated, call_param=call_param, seed=1234
          )
          rotate.lazy = False
  
          self.assertEqual(len(rotated.applied_operations), 1)
          expected = [
              np.rot90(channel, rotate._rand_k, (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",
          )
          test_local_inversion(rotate, rotated, im)
  
file_path: MONAI/tests/test_rand_rotate90.py
imports: from __future__ import annotations
  import unittest
  import numpy
  import torch
  from monai.data import MetaTensor, set_track_meta
  from monai.transforms import RandRotate90
  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 TestRandRotate90 obj's underlying member method code with example usage: obj.test_spatial_axes() without return types