docstr: Tests sobol + GPEI instantiation.
code: def test_sobol_GPEI(self) -> None:
      """Tests sobol + GPEI instantiation."""
      exp = get_branin_experiment()
      # Check that factory generates a valid sobol modelbridge.
      sobol = get_sobol(search_space=exp.search_space)
      self.assertIsInstance(sobol, RandomModelBridge)
      for _ in range(5):
          sobol_run = sobol.gen(n=1)
          exp.new_batch_trial().add_generator_run(
              sobol_run
          ).run().mark_completed()
      # Check that factory generates a valid GP+EI modelbridge.
      exp.optimization_config = get_branin_optimization_config()
      gpei = get_GPEI(experiment=exp, data=exp.fetch_data())
      self.assertIsInstance(gpei, TorchModelBridge)
      gpei = get_GPEI(
          experiment=exp,
          data=exp.fetch_data(),
          search_space=exp.search_space,
      )
      self.assertIsInstance(gpei, TorchModelBridge)
      botorch = get_botorch(experiment=exp, data=exp.fetch_data())
      self.assertIsInstance(botorch, TorchModelBridge)
  
      # Check that .gen returns without failure
      gpei_run = gpei.gen(n=1)
      self.assertEqual(len(gpei_run.arms), 1)
  
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 1 for calling the ModelBridgeFactoryTestSingleObjective obj's underlying member method code with example usage: obj.test_sobol_GPEI() without return types