code: def test_4d_5d(self, new_shape, tile, device, dtype, expected_data):
      img = np.arange(12).reshape(new_shape)
      img = np.tile(img, tile)
      img = MetaTensor(img).to(device)
  
      dst = torch.tensor(
          [
              [1.0, 0.0, 0.0, 0.0],
              [0.0, 1.0, 0.0, 0.0],
              [0.0, 0.0, -1.0, 1.5],
              [0.0, 0.0, 0.0, 1.0],
          ]
      )
      dst = dst.to(dtype)
      init_param = {"dtype": dtype, "align_corners": True}
      call_param = {
          "img": img,
          "dst_affine": dst,
          "align_corners": False,
      }
      resampler = SpatialResample(**init_param)
      out = resampler(**call_param)
      assert_allclose(out, expected_data[None], rtol=1e-2, atol=1e-2)
      assert_allclose(
          out.affine, dst.to(torch.float32), rtol=1e-2, atol=1e-2
      )
  
      test_resampler_lazy(resampler, out, init_param, call_param)
  
imports: from __future__ import annotations
  import unittest
  from copy import deepcopy
  import numpy
  import torch
  from parameterized import parameterized
  from monai.data.meta_obj import set_track_meta
  from monai.data.meta_tensor import MetaTensor
  from monai.data.utils import to_affine_nd
  from monai.transforms import SpatialResample
  from monai.utils import optional_import
  from tests.lazy_transforms_utils import test_resampler_lazy
  from tests.utils import TEST_DEVICES, TEST_NDARRAYS_ALL, assert_allclose
label_desc: Use image node_id 2 for calling the TestSpatialResample obj's underlying member method code with example usage: obj.test_4d_5d(new_shape, tile, device, dtype, expected_data) without return types