code: def test_affine_shift_2(self):
      affine = torch.as_tensor([[1.0, 0.0, -1.0], [0.0, 1.0, 0.0]])
      image = torch.as_tensor(
          [
              [
                  [
                      [4.0, 1.0, 3.0, 2.0],
                      [7.0, 6.0, 8.0, 5.0],
                      [3.0, 5.0, 3.0, 6.0],
                  ]
              ]
          ]
      )
      out = AffineTransform(align_corners=False)(image, affine)
      out = out.detach().cpu().numpy()
      expected = [[[[0, 0, 0, 0], [4, 1, 3, 2], [7, 6, 8, 5]]]]
      np.testing.assert_allclose(out, expected, atol=1e-5, rtol=_rtol)
  
imports: from __future__ import annotations
  import unittest
  import numpy
  import torch
  from parameterized import parameterized
  from monai.networks import normalize_transform, to_norm_affine
  from monai.networks.layers import AffineTransform
  from tests.utils import is_tf32_env
label_desc: Use image node_id 3 for calling the TestAffineTransform obj's underlying member method code with example usage: obj.test_affine_shift_2() without return types