code: def test_replication_mbm(self) -> None:
      for method, problem, expected_name in [
          (
              get_sobol_botorch_modular_acquisition(
                  model_cls=SingleTaskGP,
                  acquisition_cls=qLogNoisyExpectedImprovement,
                  distribute_replications=True,
              ),
              get_problem(
                  "constrained_gramacy_fixed_noise", num_trials=6
              ),
              "MBM::SingleTaskGP_qLogNEI",
          ),
          (
              get_sobol_botorch_modular_acquisition(
                  model_cls=SingleTaskGP,
                  acquisition_cls=qLogNoisyExpectedImprovement,
                  scheduler_options=get_sequential_optimization_scheduler_options(),
                  distribute_replications=False,
              ),
              get_single_objective_benchmark_problem(
                  infer_noise=False, num_trials=6
              ),
              "MBM::SingleTaskGP_qLogNEI",
          ),
          (
              get_sobol_botorch_modular_acquisition(
                  model_cls=FixedNoiseGP,
                  acquisition_cls=qLogNoisyExpectedImprovement,
                  distribute_replications=False,
              ),
              get_single_objective_benchmark_problem(
                  infer_noise=False, num_trials=6
              ),
              "MBM::FixedNoiseGP_qLogNEI",
          ),
          (
              get_sobol_botorch_modular_acquisition(
                  model_cls=FixedNoiseGP,
                  acquisition_cls=qNoisyExpectedHypervolumeImprovement,
                  distribute_replications=False,
              ),
              get_multi_objective_benchmark_problem(
                  infer_noise=False, num_trials=6
              ),
              "MBM::FixedNoiseGP_qNEHVI",
          ),
          (
              get_sobol_botorch_modular_acquisition(
                  model_cls=SaasFullyBayesianSingleTaskGP,
                  acquisition_cls=qLogNoisyExpectedImprovement,
                  distribute_replications=False,
              ),
              get_multi_objective_benchmark_problem(num_trials=6),
              "MBM::SAAS_qLogNEI",
          ),
      ]:
          with self.subTest(method=method, problem=problem):
              res = benchmark_replication(
                  problem=problem, method=method, seed=0
              )
              self.assertEqual(
                  problem.num_trials,
                  len(not_none(res.experiment).trials),
              )
              self.assertTrue(np.all(res.score_trace <= 100))
              self.assertEqual(
                  method.name, method.generation_strategy.name
              )
              self.assertEqual(method.name, expected_name)
  
imports: import tempfile
  import numpy
  from ax.benchmark.benchmark import benchmark_multiple_problems_methods, benchmark_one_method_problem, benchmark_replication
  from ax.benchmark.benchmark_method import BenchmarkMethod, get_sequential_optimization_scheduler_options
  from ax.benchmark.benchmark_problem import SingleObjectiveBenchmarkProblem
  from ax.benchmark.benchmark_result import BenchmarkResult
  from ax.benchmark.methods.modular_botorch import get_sobol_botorch_modular_acquisition
  from ax.benchmark.problems.registry import get_problem
  from ax.modelbridge.modelbridge_utils import extract_search_space_digest
  from ax.service.utils.scheduler_options import SchedulerOptions
  from ax.storage.json_store.load import load_experiment
  from ax.storage.json_store.save import save_experiment
  from ax.utils.common.testutils import TestCase
  from ax.utils.common.typeutils import not_none
  from ax.utils.testing.benchmark_stubs import get_moo_surrogate, get_multi_objective_benchmark_problem, get_single_objective_benchmark_problem, get_sobol_benchmark_method, get_soo_surrogate
  from ax.utils.testing.core_stubs import get_dataset, get_experiment
  from ax.utils.testing.mock import fast_botorch_optimize
  from botorch.acquisition.logei import qLogNoisyExpectedImprovement
  from botorch.acquisition.multi_objective.monte_carlo import qNoisyExpectedHypervolumeImprovement
  from botorch.models.fully_bayesian import SaasFullyBayesianSingleTaskGP
  from botorch.models.gp_regression import FixedNoiseGP, SingleTaskGP
  from botorch.test_functions.synthetic import Branin
label_desc: Use image node_id 5 for calling the TestBenchmark obj's underlying member method code with example usage: obj.test_replication_mbm() without return types