code: def setUp(self) -> None:
      self.branin_experiment = get_branin_experiment()
      sobol = Models.SOBOL(
          search_space=self.branin_experiment.search_space
      )
      sobol_run = sobol.gen(n=20)
      self.branin_experiment.new_batch_trial().add_generator_run(
          sobol_run
      ).run().mark_completed()
      data = self.branin_experiment.fetch_data()
  
      ms_gpei = ModelSpec(model_enum=Models.GPEI)
      ms_gpei.fit(experiment=self.branin_experiment, data=data)
  
      ms_gpkg = ModelSpec(model_enum=Models.GPKG)
      ms_gpkg.fit(experiment=self.branin_experiment, data=data)
  
      self.fitted_model_specs = [ms_gpei, ms_gpkg]
  
      self.model_selection_node = GenerationNode(
          node_name="test",
          model_specs=self.fitted_model_specs,
          best_model_selector=SingleDiagnosticBestModelSelector(
              diagnostic="Fisher exact test p",
              # pyre-fixme[6]: For 2nd param expected `DiagnosticCriterion` but
              #  got `MetricAggregation`.
              criterion=MetricAggregation.MEAN,
              # pyre-fixme[6]: For 3rd param expected `MetricAggregation` but got
              #  `DiagnosticCriterion`.
              metric_aggregation=DiagnosticCriterion.MIN,
          ),
      )
  
imports: import logging
  from logging import Logger
  from unittest.mock import patch, PropertyMock
  from ax.core.base_trial import TrialStatus
  from ax.core.observation import ObservationFeatures
  from ax.exceptions.core import UserInputError
  from ax.modelbridge.cross_validation import DiagnosticCriterion, MetricAggregation, SingleDiagnosticBestModelSelector
  from ax.modelbridge.factory import get_sobol
  from ax.modelbridge.generation_node import GenerationNode, GenerationStep
  from ax.modelbridge.model_spec import FactoryFunctionModelSpec, ModelSpec
  from ax.modelbridge.registry import Models
  from ax.modelbridge.transition_criterion import MaxTrials
  from ax.utils.common.logger import get_logger
  from ax.utils.common.testutils import TestCase
  from ax.utils.testing.core_stubs import get_branin_experiment
  from ax.utils.testing.mock import fast_botorch_optimize
label_desc: Use image node_id 1 for calling the TestGenerationNodeWithBestModelSelector obj's underlying member method code with example usage: obj.setUp() without return types