code: def _validate_and_maybe_get_default_reference_point(
      reference_point: Optional[Tuple[float, float]],
      objective_thresholds: List[ObjectiveThreshold],
      metric_names: Tuple[str, str],
  ) -> Optional[Tuple[float, float]]:
      if reference_point is None:
          reference_point = {
              objective_threshold.metric.name: objective_threshold.bound
              for objective_threshold in objective_thresholds
          }
          missing_metric_names = set(metric_names) - set(
              reference_point
          )
          if missing_metric_names:
              warnings.warn(
                  "Automated determination of `reference_point` failed: missing metrics "
                  f"{missing_metric_names}. Please specify `reference_point` or provide "
                  "an experiment whose `optimization_config` has one "
                  "`objective_threshold` for each of two metrics. Returning `None`."
              )
              return None
          reference_point = tuple(
              reference_point[metric_name]
              for metric_name in metric_names
          )
      if len(reference_point) != 2:
          warnings.warn(
              f"Expected 2-dimensional `reference_point` but got {len(reference_point)} "
              f"dimensions: {reference_point}. Please specify `reference_point` of "
              "length 2 or provide an experiment whose optimization config has one "
              "`objective_threshold` for each of two metrics. Returning `None`."
          )
          return None
      return reference_point
  
imports: import warnings
  from typing import Dict, Iterable, List, Optional, Tuple, Union
  import numpy
  import pandas
  import plotly.graph_objs
  from ax.core.experiment import Experiment
  from ax.core.objective import MultiObjective
  from ax.core.optimization_config import MultiObjectiveOptimizationConfig, OptimizationConfig
  from ax.core.outcome_constraint import ObjectiveThreshold
  from ax.exceptions.core import UserInputError
  from ax.plot.base import AxPlotConfig, AxPlotTypes, CI_OPACITY, DECIMALS
  from ax.plot.color import COLORS, DISCRETE_COLOR_SCALE, rgba
  from ax.plot.helper import _format_CI, _format_dict, extend_range
  from ax.plot.pareto_utils import ParetoFrontierResults
  from ax.service.utils.best_point_mixin import BestPointMixin
  from ax.utils.common.typeutils import checked_cast, not_none
  from plotly import express
  from scipy.stats import norm
label_desc: Use image node_id 15 for calling a global function with example usage: _validate_and_maybe_get_default_reference_point(reference_point, objective_thresholds, metric_names) and returns: reference_point, None, None