docstr: Tests MTGP ParEGO instantiation.
code: def test_MTGP_PAREGO(self) -> None:
      """Tests MTGP ParEGO instantiation."""
      self.test_single_objective_error(get_MTGP_PAREGO)
      (
          multi_obj_exp,
          optimization_config,
      ) = get_multi_obj_exp_and_opt_config()
      with self.assertRaises(ValueError):
          get_MTGP_PAREGO(
              experiment=multi_obj_exp,
              data=multi_obj_exp.fetch_data(),
              optimization_config=optimization_config,
          )
  
      multi_obj_exp.trials[0].run()
      sobol_generator = get_sobol(
          search_space=multi_obj_exp.search_space
      )
      sobol_run = sobol_generator.gen(n=3)
      multi_obj_exp.new_batch_trial(
          optimize_for_power=False
      ).add_generator_run(sobol_run)
      multi_obj_exp.trials[1].run()
      mt_ehvi = get_MTGP_PAREGO(
          experiment=multi_obj_exp,
          data=multi_obj_exp.fetch_data(),
          trial_index=1,
          optimization_config=optimization_config,
      )
      self.assertIsInstance(mt_ehvi, TorchModelBridge)
      # pyre-fixme[16]: Optional type has no attribute `model`.
      self.assertIsInstance(mt_ehvi.model.model.models[0], MultiTaskGP)
      task_covar_factor = mt_ehvi.model.model.models[
          0
      ].task_covar_module.covar_factor
      self.assertEqual(task_covar_factor.shape, torch.Size([2, 2]))
      mt_ehvi_run = mt_ehvi.gen(
          n=1,
          fixed_features=ObservationFeatures(
              parameters={}, trial_index=1
          ),
      )
      self.assertEqual(len(mt_ehvi_run.arms), 1)
  
      # Bad index given
      with self.assertRaises(ValueError):
          get_MTGP_PAREGO(
              experiment=multi_obj_exp,
              data=multi_obj_exp.fetch_data(),
              trial_index=999,
              optimization_config=optimization_config,
          )
  
      # Multi-type + multi-objective experiment
      multi_type_multi_obj_exp = (
          get_multi_type_experiment_with_multi_objective(
              add_trials=True
          )
      )
      data = multi_type_multi_obj_exp.fetch_data()
      mt_ehvi = get_MTGP_PAREGO(
          experiment=multi_type_multi_obj_exp,
          data=data,
          optimization_config=optimization_config,
      )
  
imports: from unittest import mock
  import pandas
  import torch
  from ax.core.data import Data
  from ax.core.metric import Metric
  from ax.core.objective import MultiObjective, Objective
  from ax.core.observation import ObservationFeatures
  from ax.core.optimization_config import MultiObjectiveOptimizationConfig
  from ax.core.outcome_constraint import ComparisonOp, ObjectiveThreshold
  from ax.core.parameter import RangeParameter
  from ax.modelbridge.discrete import DiscreteModelBridge
  from ax.modelbridge.factory import get_botorch, get_empirical_bayes_thompson, get_factorial, get_GPEI, get_GPKG, get_GPMES, get_MOO_EHVI, get_MOO_NEHVI, get_MOO_PAREGO, get_MOO_RS, get_MTGP_LEGACY, get_MTGP_NEHVI, get_MTGP_PAREGO, get_sobol, get_thompson, get_uniform
  from ax.modelbridge.random import RandomModelBridge
  from ax.modelbridge.torch import TorchModelBridge
  from ax.models.discrete.eb_thompson import EmpiricalBayesThompsonSampler
  from ax.models.discrete.thompson import ThompsonSampler
  from ax.models.winsorization_config import WinsorizationConfig
  from ax.utils.common.testutils import TestCase
  from ax.utils.testing.core_stubs import get_branin_experiment, get_branin_experiment_with_multi_objective, get_branin_optimization_config, get_factorial_experiment, get_multi_type_experiment, get_multi_type_experiment_with_multi_objective
  from ax.utils.testing.mock import fast_botorch_optimize
  from botorch.models.multitask import MultiTaskGP
label_desc: Use image node_id 6 for calling the ModelBridgeFactoryTestMultiObjective obj's underlying member method code with example usage: obj.test_MTGP_PAREGO() without return types