code: def test_exceptions(df):
      """Tests error messages when CV is skipped and there are
      multiple hyperparameter options.
  
      Parameters tested:
  
          - hyperparameter_grid = dict, list of dict with distribution
          - cv_horizon=0
      """
      with pytest.raises(
          ValueError,
          match="CV is required to identify the best model because there are multiple options",
      ):
          hyperparameter_grid = {
              "estimator__n_changepoints": [0],
              "estimator__uncertainty_samples": [10, 20],
          }
          forecast_pipeline(
              df,
              estimator=ProphetEstimator(),
              hyperparameter_grid=hyperparameter_grid,
              hyperparameter_budget=None,
              forecast_horizon=24,
              test_horizon=10,
              cv_horizon=0,
          )
  
      with pytest.raises(
          ValueError,
          match="CV is required to identify the best model because `hyperparameter_grid` contains",
      ):
          hyperparameter_grid = [
              {
                  "estimator__strategy": ["constant"],
                  "estimator__constant": sp_randint(1, 3, 4),
              }
          ]
          forecast_pipeline(
              df,
              pipeline=get_dummy_pipeline(),
              hyperparameter_grid=hyperparameter_grid,
              hyperparameter_budget=None,
              forecast_horizon=24,
              test_horizon=10,
              cv_horizon=0,
          )
  
imports: import datetime
  import math
  import sys
  import warnings
  import numpy
  import pandas
  import pytest
  from scipy.stats import randint
  from sklearn.metrics import explained_variance_score
  from sklearn.metrics import mean_absolute_error
  from sklearn.metrics import mean_squared_error
  from sklearn.pipeline import Pipeline
  from greykite.common.constants import ACTUAL_COL
  from greykite.common.constants import ADJUSTMENT_DELTA_COL
  from greykite.common.constants import END_TIME_COL
  from greykite.common.constants import FRACTION_OUTSIDE_TOLERANCE
  from greykite.common.constants import METRIC_COL
  from greykite.common.constants import PREDICTED_COL
  from greykite.common.constants import QUANTILE_SUMMARY_COL
  from greykite.common.constants import START_TIME_COL
  from greykite.common.constants import TIME_COL
  from greykite.common.constants import VALUE_COL
  from greykite.common.constants import R2_null_model_score
  from greykite.common.evaluation import EvaluationMetricEnum
  from greykite.common.evaluation import add_finite_filter_to_scorer
  from greykite.common.evaluation import add_preaggregation_to_scorer
  from greykite.common.python_utils import assert_equal
  from greykite.common.python_utils import unique_elements_in_list
  from greykite.common.testing_utils import generate_df_for_tests
  from greykite.common.testing_utils import generate_df_with_reg_for_tests
  from greykite.framework.constants import CV_REPORT_METRICS_ALL
  from greykite.framework.constants import FRACTION_OUTSIDE_TOLERANCE_NAME
  from greykite.framework.input.univariate_time_series import UnivariateTimeSeries
  from greykite.framework.pipeline.pipeline import forecast_pipeline
  from greykite.framework.templates.prophet_template import ProphetTemplate
  from greykite.framework.utils.framework_testing_utils import check_forecast_pipeline_result
  from greykite.framework.utils.framework_testing_utils import mock_pipeline
  from greykite.sklearn.estimator.null_model import DummyEstimator
  from greykite.sklearn.estimator.prophet_estimator import ProphetEstimator
  from greykite.sklearn.estimator.silverkite_estimator import SilverkiteEstimator
  from greykite.sklearn.estimator.simple_silverkite_estimator import SimpleSilverkiteEstimator
  from greykite.sklearn.transform.column_selector import ColumnSelector
  from greykite.sklearn.transform.drop_degenerate_transformer import DropDegenerateTransformer
  from greykite.sklearn.transform.dtype_column_selector import DtypeColumnSelector
  from greykite.sklearn.transform.normalize_transformer import NormalizeTransformer
  from greykite.sklearn.transform.null_transformer import NullTransformer
  from greykite.sklearn.transform.pandas_feature_union import PandasFeatureUnion
  from greykite.sklearn.transform.zscore_outlier_transformer import ZscoreOutlierTransformer
label_desc: Use image node_id 8 for calling a global function with example usage: test_exceptions(df) without return types