code: def test_individual_forward_and_inverse(self, device, dtype):
      inp = torch.randn(1, 3, 1000, 500, device=device, dtype=dtype)
      bbox = torch.tensor(
          [[[[355, 10], [660, 10], [660, 250], [355, 250]]]],
          device=device,
          dtype=dtype,
      )
      keypoints = torch.tensor(
          [[[465, 115], [545, 116]]], device=device, dtype=dtype
      )
      mask = bbox_to_mask(
          torch.tensor(
              [[[155, 0], [900, 0], [900, 400], [155, 400]]],
              device=device,
              dtype=dtype,
          ),
          500,
          1000,
      )[:, None]
      crop_size = (200, 200)
  
      aug = K.AugmentationSequential(
          K.ImageSequential(
              K.ColorJiggle(0.1, 0.1, 0.1, 0.1, p=1.0),
              K.RandomAffine(360, p=1.0),
          ),
          K.AugmentationSequential(
              K.ColorJiggle(0.1, 0.1, 0.1, 0.1, p=1.0),
              K.RandomAffine(360, p=1.0),
          ),
          K.RandomAffine(360, p=1.0),
          K.RandomCrop(
              crop_size, padding=1, cropping_mode="resample", fill=0
          ),
          data_keys=["input", "mask", "bbox", "keypoints"],
          extra_args={},
      )
      # NOTE: Mask data with nearest not passing reproducibility check under float64.
      reproducibility_test((inp, mask, bbox, keypoints), aug)
  
      out = aug(inp, mask, bbox, keypoints)
      assert out[0].shape == (*inp.shape[:2], *crop_size)
      assert out[1].shape == (*mask.shape[:2], *crop_size)
      assert out[2].shape == bbox.shape
      assert out[3].shape == keypoints.shape
  
      out_inv = aug.inverse(*out)
      assert out_inv[0].shape == inp.shape
      assert out_inv[1].shape == mask.shape
      assert out_inv[2].shape == bbox.shape
      assert out_inv[3].shape == keypoints.shape
  
      aug = K.AugmentationSequential(K.RandomAffine(360, p=1.0))
      assert aug(inp, data_keys=["input"]).shape == inp.shape
      aug = K.AugmentationSequential(K.RandomAffine(360, p=1.0))
      assert aug(inp, data_keys=["input"]).shape == inp.shape
      assert (
          aug(mask, data_keys=["mask"], params=aug._params).shape
          == mask.shape
      )
  
      assert aug.inverse(inp, data_keys=["input"]).shape == inp.shape
      assert aug.inverse(bbox, data_keys=["bbox"]).shape == bbox.shape
      assert (
          aug.inverse(keypoints, data_keys=["keypoints"]).shape
          == keypoints.shape
      )
      assert aug.inverse(mask, data_keys=["mask"]).shape == mask.shape
  
imports: from functools import partial
  from unittest.mock import patch
  import pytest
  import torch
  import kornia
  import kornia.augmentation
  from kornia.augmentation.container.base import ParamItem
  from kornia.constants import BorderType
  from kornia.geometry.bbox import bbox_to_mask
  from kornia.testing import assert_close
label_desc: Use image node_id 15 for calling the TestAugmentationSequential obj's underlying member method code with example usage: obj.test_individual_forward_and_inverse(device, dtype) without return types