code: def test_node_string_representation(self) -> None:
      node = GenerationNode(
          node_name="test",
          model_specs=[
              ModelSpec(
                  model_enum=Models.GPEI,
                  model_kwargs={},
                  model_gen_kwargs={},
              ),
          ],
          gen_unlimited_trials=False,
          transition_criteria=[
              MaxTrials(
                  threshold=5, only_in_statuses=[TrialStatus.RUNNING]
              )
          ],
      )
      string_rep = str(node)
      self.assertEqual(
          string_rep,
          (
              "GenerationNode(model_specs=[ModelSpec(model_enum=GPEI,"
              " model_kwargs={}, model_gen_kwargs={}, model_cv_kwargs={},"
              " )], node_name=test, gen_unlimited_trials=False, "
              "transition_criteria=[MaxTrials({'threshold': 5, "
              "'only_in_statuses': [<TrialStatus.RUNNING: 4>], "
              "'not_in_statuses': None, 'transition_to': None, "
              "'block_transition_if_unmet': True, 'block_gen_if_met': False})]"
              ")"
          ),
      )
  
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 7 for calling the TestGenerationNode obj's underlying member method code with example usage: obj.test_node_string_representation() without return types