code: def test_MultiObjective(self) -> None:
      with self.assertRaises(NotImplementedError):
          # pyre-fixme[7]: Expected `None` but got `Metric`.
          return self.multi_objective.metric
  
      self.assertEqual(
          self.multi_objective.metrics, list(self.metrics.values())
      )
      minimizes = [
          obj.minimize for obj in self.multi_objective.objectives
      ]
      self.assertEqual(minimizes, [False, True, False])
      weights = [mw[1] for mw in self.multi_objective.objective_weights]
      self.assertEqual(weights, [1.0, 1.0, 1.0])
      self.assertEqual(
          self.multi_objective.clone(), self.multi_objective
      )
      self.assertEqual(
          str(self.multi_objective),
          (
              "MultiObjective(objectives="
              '[Objective(metric_name="m1", minimize=False), '
              'Objective(metric_name="m2", minimize=True), '
              'Objective(metric_name="m3", minimize=False)])'
          ),
      )
      self.assertEqual(
          self.multi_objective.get_unconstrainable_metrics(),
          [self.metrics["m1"], self.metrics["m2"], self.metrics["m3"]],
      )
  
file_path: Ax/ax/core/tests/test_objective.py
imports: import warnings
  from ax.core.metric import Metric
  from ax.core.objective import MultiObjective, Objective, ScalarizedObjective
  from ax.utils.common.testutils import TestCase
label_desc: Use image node_id 3 for calling the ObjectiveTest obj's underlying member method code with example usage: obj.test_MultiObjective() and returns: self