code: def test_module(self, n_spatial, device, dtype):
      torch.manual_seed(22)
  
      spatial_dimensions = [10] * n_spatial
      image = torch.rand(
          4, 3, *spatial_dimensions, device=device, dtype=dtype
      )
      mask = torch.zeros(
          4, *spatial_dimensions, device=device, dtype=dtype
      )
      mask_additional = torch.randint(
          0, 2, (4, *spatial_dimensions), device=device, dtype=dtype
      )
  
      selection = torch.zeros(
          *spatial_dimensions, device=device, dtype=torch.bool
      )
      selection[[slice(0, 5)] * n_spatial] = True
      assert selection.sum() == 5**n_spatial
  
      # Transplant rectangle from the (i - 1)-th to the i-th image
      for i in range(4):
          mask[i, selection] = i + 1
  
      image_copy = image.clone()
      mask_copy = mask.clone()
      mask_additional_copy = mask_additional.clone()
  
      f = RandomTransplantation(p=1, excluded_labels=[0])
      image_out, mask_out, mask_additional_out = f(
          image,
          mask,
          mask_additional,
          data_keys=["input", "mask", "mask"],
      )
  
      self.assert_close(image, image_copy)
      self.assert_close(mask, mask_copy)
      self.assert_close(mask_additional, mask_additional_copy)
  
      for i in range(4):
          selection_moved = mask_out[i, selection]
          selection_unchanged = mask_out[i, ~selection]
          self.assert_close(
              selection_moved,
              torch.full_like(selection_moved, (i - 1) % 4 + 1),
          )
          self.assert_close(
              selection_unchanged,
              torch.full_like(selection_unchanged, 0),
          )
          self.assert_close(
              image_out[i, :, selection],
              image[(i - 1) % 4, :, selection],
          )
          self.assert_close(
              image_out[i, :, ~selection], image[i, :, ~selection]
          )
          self.assert_close(
              mask_additional_out[i, selection],
              mask_additional[(i - 1) % 4, selection],
          )
          self.assert_close(
              mask_additional_out[i, ~selection],
              mask_additional[i, ~selection],
          )
  
imports: import copy
  import pytest
  import torch
  from kornia.augmentation import AugmentationSequential, RandomCutMixV2, RandomJigsaw, RandomMixUpV2, RandomMosaic, RandomTransplantation, RandomTransplantation3D
  from kornia.testing import BaseTester, assert_close, tensor_to_gradcheck_var
label_desc: Use image node_id 3 for calling the TestRandomTransplantation obj's underlying member method code with example usage: obj.test_module(n_spatial, device, dtype) without return types