code: def setUp(self) -> None:
      self.test_dir = tempfile.mkdtemp("torchx_runtime_hpo_ax_test")
  
      self.old_cwd = os.getcwd()
      os.chdir(os.path.dirname(os.path.dirname(__file__)))
  
      self._parameters: List[Parameter] = [
          RangeParameter(
              name="x1",
              lower=-10.0,
              upper=10.0,
              parameter_type=ParameterType.FLOAT,
          ),
          RangeParameter(
              name="x2",
              lower=-10.0,
              upper=10.0,
              parameter_type=ParameterType.FLOAT,
          ),
      ]
  
      self._minimize = True
      self._objective = Objective(
          metric=TorchXMetric(
              name="booth_eval",
          ),
          minimize=self._minimize,
      )
  
      self._runner = TorchXRunner(
          tracker_base=self.test_dir,
          component=utils.booth,
          scheduler="local_cwd",
          cfg={"prepend_cwd": True},
      )
  
file_path: Ax/ax/runners/tests/test_torchx.py
imports: import os
  import shutil
  import tempfile
  from typing import List
  from ax.core import BatchTrial, Experiment, Objective, OptimizationConfig, Parameter, ParameterType, RangeParameter, SearchSpace
  from ax.metrics.torchx import TorchXMetric
  from ax.modelbridge.dispatch_utils import choose_generation_strategy
  from ax.runners.torchx import TorchXRunner
  from ax.service.scheduler import FailureRateExceededError, Scheduler, SchedulerOptions
  from ax.utils.common.constants import Keys
  from ax.utils.common.testutils import TestCase
  from torchx.components import utils
label_desc: Use image node_id 1 for calling the TorchXRunnerTest obj's underlying member method code with example usage: obj.setUp() without return types