code: def test_augmentation_input_args(self):
      input_shape = (100, 100)
      output_shape = (50, 50)
  
      # define two augmentations with different args
      class TG1(T.Augmentation):
          def get_transform(self, image, sem_seg):
              return T.ResizeTransform(
                  input_shape[0],
                  input_shape[1],
                  output_shape[0],
                  output_shape[1],
              )
  
      class TG2(T.Augmentation):
          def get_transform(self, image):
              assert (
                  image.shape[:2] == output_shape
              )  # check that TG1 is applied
              return T.HFlipTransform(output_shape[1])
  
      image = np.random.rand(*input_shape).astype("float32")
      sem_seg = (np.random.rand(*input_shape) < 0.5).astype("uint8")
      inputs = T.AugInput(image, sem_seg=sem_seg)  # provide two args
      tfms = inputs.apply_augmentations([TG1(), TG2()])
      self.assertIsInstance(tfms[0], T.ResizeTransform)
      self.assertIsInstance(tfms[1], T.HFlipTransform)
      self.assertTrue(inputs.image.shape[:2] == output_shape)
      self.assertTrue(inputs.sem_seg.shape[:2] == output_shape)
  
      class TG3(T.Augmentation):
          def get_transform(self, image, nonexist):
              pass
  
      with self.assertRaises(AttributeError):
          inputs.apply_augmentations([TG3()])
  
imports: import logging
  import numpy
  import unittest
  from unittest import mock
  import torch
  from PIL import Image, ImageOps
  from torch.nn import functional
  from detectron2.config import get_cfg
  from detectron2.data import detection_utils
  from detectron2.data import transforms
  from detectron2.utils.logger import setup_logger
label_desc: Use image node_id 10 for calling the TestTransforms obj's underlying member method code with example usage: obj.test_augmentation_input_args() and returns: T, T