code: def setUp(self) -> None:
      self.metrics = {
          "m1": Metric(name="m1", lower_is_better=True),
          "m2": Metric(name="m2", lower_is_better=False),
          "m3": Metric(name="m3", lower_is_better=False),
      }
      self.objectives = {
          "o1": Objective(metric=self.metrics["m1"]),
          "o2": Objective(metric=self.metrics["m2"], minimize=False),
          "o3": Objective(metric=self.metrics["m3"], minimize=False),
      }
      self.objective = Objective(
          metric=self.metrics["m1"], minimize=False
      )
      self.multi_objective = MultiObjective(
          objectives=[self.objectives["o1"], self.objectives["o2"]]
      )
      self.multi_objective_just_m2 = MultiObjective(
          objectives=[self.objectives["o2"]]
      )
      self.scalarized_objective = ScalarizedObjective(
          metrics=list(self.metrics.values()),
          weights=[-1.0, 1.0, 1.0],
          minimize=False,
      )
      self.outcome_constraint = OutcomeConstraint(
          metric=self.metrics["m3"], op=ComparisonOp.GEQ, bound=-0.25
      )
      self.additional_outcome_constraint = OutcomeConstraint(
          metric=self.metrics["m3"], op=ComparisonOp.LEQ, bound=0.25
      )
      self.outcome_constraints = [
          self.outcome_constraint,
          self.additional_outcome_constraint,
      ]
      self.objective_thresholds = [
          ObjectiveThreshold(
              metric=self.metrics["m1"], bound=-1.0, relative=False
          ),
          ObjectiveThreshold(
              metric=self.metrics["m2"], bound=-1.0, relative=False
          ),
      ]
      self.relative_objective_thresholds = [
          ObjectiveThreshold(
              metric=self.metrics["m1"], bound=-1.0, relative=True
          ),
          ObjectiveThreshold(
              metric=self.metrics["m2"],
              op=ComparisonOp.GEQ,
              bound=-1.0,
              relative=True,
          ),
      ]
      self.m1_constraint = OutcomeConstraint(
          metric=self.metrics["m1"],
          op=ComparisonOp.LEQ,
          bound=0.1,
          relative=True,
      )
      self.m3_constraint = OutcomeConstraint(
          metric=self.metrics["m3"],
          op=ComparisonOp.GEQ,
          bound=0.1,
          relative=True,
      )
      self.single_output_risk_measure = RiskMeasure(
          risk_measure="Expectation",
          options={"n_w": 2},
      )
      self.multi_output_risk_measure = RiskMeasure(
          risk_measure="MultiOutputExpectation",
          options={"n_w": 2},
      )
  
imports: from ax.core.metric import Metric
  from ax.core.objective import MultiObjective, Objective, ScalarizedObjective
  from ax.core.optimization_config import _NO_RISK_MEASURE, MultiObjectiveOptimizationConfig, OptimizationConfig
  from ax.core.outcome_constraint import ObjectiveThreshold, OutcomeConstraint, ScalarizedOutcomeConstraint
  from ax.core.risk_measures import RiskMeasure
  from ax.core.types import ComparisonOp
  from ax.exceptions.core import UserInputError
  from ax.utils.common.testutils import TestCase
label_desc: Use image node_id 1 for calling the MultiObjectiveOptimizationConfigTest obj's underlying member method code with example usage: obj.setUp() without return types