code: def test_get_forecast_prophet():
      X = pd.DataFrame(
          {
              cst.TIME_COL: pd.date_range(
                  "2018-01-01", periods=10, freq="D"
              ),
              cst.VALUE_COL: np.arange(10),
          }
      )
      X_future = pd.DataFrame(
          {
              cst.TIME_COL: pd.date_range(
                  "2018-01-11", periods=2, freq="D"
              ),
              cst.VALUE_COL: np.repeat(np.nan, 2),
          }
      )
      # coverage is sufficient to request uncertainty interval,
      # even with ``uncertainty_dict=None``
      coverage = 0.95
  
      # test forecast into future with bands and null model, custom labels, custom loss
      trained_model = Pipeline(
          [
              (
                  "estimator",
                  ProphetEstimator(
                      coverage=coverage,
                      score_func=mean_absolute_error,
                      null_model_params={"strategy": "mean"},
                  ),
              )
          ]
      )
  
      trained_model.fit(X, X[cst.VALUE_COL])
  
      with pytest.warns(UserWarning) as record:
          X_forecast = pd.concat([X, X_future])
          train_end_date = X[cst.TIME_COL].max()
          test_start_date = X[cst.TIME_COL].min()
          forecast = get_forecast(
              X_forecast,
              trained_model,
              train_end_date=train_end_date,
              test_start_date=test_start_date,
              forecast_horizon=X_future.shape[0],
              xlabel="xlabel",
              ylabel="ylabel",
          )
          assert forecast.df.shape == (X_forecast.shape[0], 6)
          assert forecast.time_col == "xlabel"
          assert forecast.actual_col == cst.ACTUAL_COL
          assert forecast.predicted_col == cst.PREDICTED_COL
          assert forecast.predicted_lower_col == cst.PREDICTED_LOWER_COL
          assert forecast.predicted_upper_col == cst.PREDICTED_UPPER_COL
          assert (
              forecast.null_model_predicted_col
              == cst.NULL_PREDICTED_COL
          )
          assert forecast.ylabel == "ylabel"
          assert forecast.train_end_date == train_end_date
          assert forecast.test_start_date == test_start_date
          assert forecast.forecast_horizon == 2
          assert forecast.coverage == coverage
          assert forecast.r2_loss_function == mean_absolute_error
          assert (
              "y_true contains 0. MAPE is undefined."
              in record[0].message.args[0]
          )
          assert (
              "y_true contains 0. MedAPE is undefined."
              in record[1].message.args[0]
          )
          assert (
              "denominator contains very small values. sMAPE is likely highly volatile."
              in record[2].message.args[0]
          )
  
imports: import sys
  import warnings
  from functools import partial
  import numpy
  import pandas
  import pytest
  from scipy.stats import randint
  from sklearn.metrics import mean_absolute_error
  from sklearn.metrics import mean_squared_error
  from sklearn.metrics import median_absolute_error
  from sklearn.pipeline import Pipeline
  from testfixtures import LogCapture
  from greykite.common import constants
  from greykite.common.constants import FRACTION_OUTSIDE_TOLERANCE
  from greykite.common.constants import LOGGER_NAME
  from greykite.common.evaluation import EvaluationMetricEnum
  from greykite.common.evaluation import add_preaggregation_to_scorer
  from greykite.common.evaluation import fraction_outside_tolerance
  from greykite.common.python_utils import assert_equal
  from greykite.common.testing_utils import assert_eval_function_equal
  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 CUSTOM_SCORE_FUNC_NAME
  from greykite.framework.constants import CV_REPORT_METRICS_ALL
  from greykite.framework.constants import FRACTION_OUTSIDE_TOLERANCE_NAME
  from greykite.framework.pipeline.utils import get_basic_pipeline
  from greykite.framework.pipeline.utils import get_best_index
  from greykite.framework.pipeline.utils import get_default_time_parameters
  from greykite.framework.pipeline.utils import get_forecast
  from greykite.framework.pipeline.utils import get_hyperparameter_searcher
  from greykite.framework.pipeline.utils import get_score_func_with_aggregation
  from greykite.framework.pipeline.utils import get_scoring_and_refit
  from greykite.framework.utils.framework_testing_utils import assert_proper_grid_search
  from greykite.framework.utils.framework_testing_utils import assert_refit
  from greykite.framework.utils.framework_testing_utils import assert_scoring
  from greykite.sklearn.cross_validation import RollingTimeSeriesSplit
  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.transform.column_selector import ColumnSelector
label_desc: Use image node_id 13 for calling a global function with example usage: test_get_forecast_prophet() without return types