code: def setUp(self) -> None:
      X = torch.randn((10, 4))
      Y = torch.randn((10, 2))
      self.dataset = SupervisedDataset(
          X=X,
          Y=Y,
          feature_names=[f"x{i}" for i in range(4)],
          outcome_names=[f"y{i}" for i in range(2)],
      )
      self.search_space_digest = SearchSpaceDigest(
          feature_names=["a", "b", "c"],
          bounds=[(0.0, 1.0), (0, 2), (0, 4)],
          ordinal_features=[1],
          categorical_features=[2],
          discrete_choices={1: [0, 1, 2], 2: [0, 0.25, 4.0]},
          task_features=[3],
          fidelity_features=[0],
          target_values={0: 1.0},
          robust_digest=None,
      )
  
imports: from __future__ import annotations
  from unittest.mock import patch
  import numpy
  import torch
  from ax.core.search_space import RobustSearchSpaceDigest, SearchSpaceDigest
  from ax.models.torch.botorch_modular.input_constructors.input_transforms import input_transform_argparse
  from ax.utils.common.testutils import TestCase
  from botorch.models.transforms.input import InputPerturbation, InputStandardize, InputTransform, Normalize, Warp
  from botorch.utils.datasets import MultiTaskDataset, SupervisedDataset
label_desc: Use image node_id 1 for calling the InputTransformArgparseTest obj's underlying member method code with example usage: obj.setUp() without return types