code: def _get_name(
      test_problem: BaseTestProblem,
      infer_noise: bool,
      dim: Optional[int] = None,
  ) -> str:
      """
      Get a string name describing the problem, in a format such as
      "hartmann_fixed_noise_6d" or "jenatton" (where the latter would
      not have fixed noise and have the default dimensionality).
      """
      base_name = f"{test_problem.__class__.__name__}"
      fixed_noise = "" if infer_noise else "_fixed_noise"
      dim_str = "" if dim is None else f"_{dim}d"
      return f"{base_name}{fixed_noise}{dim_str}"
  
imports: import abc
  from typing import Any, Dict, List, Optional, Protocol, runtime_checkable, Type
  from ax.core.metric import Metric
  from ax.core.objective import MultiObjective, Objective
  from ax.core.optimization_config import MultiObjectiveOptimizationConfig, ObjectiveThreshold, OptimizationConfig
  from ax.core.outcome_constraint import OutcomeConstraint
  from ax.core.parameter import ParameterType, RangeParameter
  from ax.core.runner import Runner
  from ax.core.search_space import SearchSpace
  from ax.core.types import ComparisonOp
  from ax.metrics.botorch_test_problem import BotorchTestProblemMetric
  from ax.runners.botorch_test_problem import BotorchTestProblemRunner
  from ax.utils.common.base import Base
  from ax.utils.common.typeutils import checked_cast
  from botorch.test_functions.base import BaseTestProblem, ConstrainedBaseTestProblem
  from botorch.test_functions.multi_objective import MultiObjectiveTestProblem
  from botorch.test_functions.synthetic import SyntheticTestFunction
label_desc: Use image node_id 1 for calling a global function with example usage: _get_name(test_problem, infer_noise, dim) and returns: base_name, fixed_noise, dim_str