code: def test_get_pareto_front_info_3d(
      include_dominated_trials: bool,
      axis_order: list[int] | None,
      targets: Callable[[FrozenTrial], Sequence[float]] | None,
      target_names: list[str] | None,
  ) -> None:
      if axis_order is not None and targets is not None:
          pytest.skip("skip using both axis_order and targets")
  
      study = create_study_3d()
      trials = study.get_trials(deepcopy=False)
  
      with warnings.catch_warnings():
          warnings.filterwarnings("ignore", category=FutureWarning)
          info = _get_pareto_front_info(
              study=study,
              include_dominated_trials=include_dominated_trials,
              axis_order=axis_order,
              targets=targets,
              target_names=target_names,
          )
  
      assert info == _ParetoFrontInfo(
          n_targets=3,
          target_names=target_names
          or ["Objective 0", "Objective 1", "Objective 2"],
          best_trials_with_values=[
              (trials[2], [0, 2, 1]),
              (trials[3], [1, 0, 1]),
          ],
          non_best_trials_with_values=[
              (trials[0], [1, 2, 1]),
              (trials[1], [1, 1, 1]),
          ]
          if include_dominated_trials
          else [],
          infeasible_trials_with_values=[],
          axis_order=axis_order or [0, 1, 2],
          include_dominated_trials=include_dominated_trials,
          has_constraints_func=False,
      )
  
imports: from __future__ import annotations
  from io import BytesIO
  from typing import Any
  from typing import Callable
  from typing import Sequence
  import warnings
  import pytest
  import optuna
  from optuna import create_study
  from optuna import create_trial
  from optuna.distributions import FloatDistribution
  from optuna.study.study import Study
  from optuna.trial import FrozenTrial
  from optuna.visualization import plot_pareto_front
  import optuna.visualization._pareto_front
  from optuna.visualization._pareto_front import _get_pareto_front_info
  from optuna.visualization._pareto_front import _ParetoFrontInfo
  from optuna.visualization._plotly_imports import go
  from optuna.visualization._utils import COLOR_SCALE
  from optuna.visualization.matplotlib._matplotlib_imports import plt
  import optuna.visualization.matplotlib._pareto_front
label_desc: Use image node_id 6 for calling a global function with example usage: test_get_pareto_front_info_3d(include_dominated_trials, axis_order, targets, target_names) without return types