code: def test_correct_shape(
      self, im_type, angle, mode, padding_mode, align_corners
  ):
      rotate_fn = Rotate(
          angle, True, align_corners=align_corners, dtype=np.float64
      )
      im = im_type(self.imt[0])
      set_track_meta(False)
      rotated = rotate_fn(im, mode=mode, padding_mode=padding_mode)
      self.assertNotIsInstance(rotated, MetaTensor)
      np.testing.assert_allclose(self.imt[0].shape, rotated.shape)
      set_track_meta(True)
      rotated = rotate_fn(im, mode=mode, padding_mode=padding_mode)
      np.testing.assert_allclose(self.imt[0].shape, rotated.shape)
      test_local_inversion(rotate_fn, rotated, im)
  
file_path: MONAI/tests/test_rotate.py
imports: from __future__ import annotations
  import unittest
  import numpy
  import scipy.ndimage
  import torch
  from parameterized import parameterized
  from monai.config import USE_COMPILED
  from monai.data import MetaTensor, set_track_meta
  from monai.transforms import Rotate
  from tests.lazy_transforms_utils import test_resampler_lazy
  from tests.utils import HAS_CUPY, TEST_NDARRAYS_ALL, NumpyImageTestCase2D, NumpyImageTestCase3D, test_local_inversion
label_desc: Use image node_id 2 for calling the TestRotate3D obj's underlying member method code with example usage: obj.test_correct_shape(im_type, angle, mode, padding_mode, align_corners) without return types