code: def mock_pipeline(
      # The arguments and defaults should be identical to forecast_pipeline() function
      # input
      df: pd.DataFrame,
      time_col=TIME_COL,
      value_col=VALUE_COL,
      date_format=None,
      tz=None,
      freq=None,
      train_end_date=None,
      anomaly_info=None,
      # model
      pipeline=None,
      regressor_cols=None,
      lagged_regressor_cols=None,
      estimator=SimpleSilverkiteEstimator(),
      hyperparameter_grid=None,
      hyperparameter_budget=None,
      n_jobs=1,
      verbose=1,
      # forecast
      forecast_horizon=None,
      coverage: Optional[float] = 0.95,
      test_horizon=None,
      periods_between_train_test=None,
      agg_periods=None,
      agg_func=None,
      # evaluation
      score_func=EvaluationMetricEnum.MeanSquaredError.name,
      score_func_greater_is_better=False,
      cv_report_metrics=None,
      null_model_params=None,
      relative_error_tolerance: Optional[float] = 0.05,
      # CV
      cv_horizon=None,
      cv_min_train_periods=None,
      cv_expanding_window=False,
      cv_use_most_recent_splits=False,
      cv_periods_between_splits=None,
      cv_periods_between_train_test=0,
      cv_max_splits=3,
  ):
      """Create and returns custom pipeline parameters"""
      return {
          "df": df,
          "time_col": time_col,
          "value_col": value_col,
          "date_format": date_format,
          "tz": tz,
          "freq": freq,
          "train_end_date": train_end_date,
          "anomaly_info": anomaly_info,
          "pipeline": pipeline,
          "regressor_cols": regressor_cols,
          "lagged_regressor_cols": lagged_regressor_cols,
          "estimator": estimator,
          "hyperparameter_grid": hyperparameter_grid,
          "hyperparameter_budget": hyperparameter_budget,
          "n_jobs": n_jobs,
          "verbose": verbose,
          "forecast_horizon": forecast_horizon,
          "coverage": coverage,
          "test_horizon": test_horizon,
          "periods_between_train_test": periods_between_train_test,
          "agg_periods": agg_periods,
          "agg_func": agg_func,
          "score_func": score_func,
          "score_func_greater_is_better": score_func_greater_is_better,
          "cv_report_metrics": cv_report_metrics,
          "null_model_params": null_model_params,
          "relative_error_tolerance": relative_error_tolerance,
          "cv_horizon": cv_horizon,
          "cv_min_train_periods": cv_min_train_periods,
          "cv_expanding_window": cv_expanding_window,
          "cv_use_most_recent_splits": cv_use_most_recent_splits,
          "cv_periods_between_splits": cv_periods_between_splits,
          "cv_periods_between_train_test": cv_periods_between_train_test,
          "cv_max_splits": cv_max_splits,
      }
  
imports: import warnings
  from functools import partial
  from typing import Optional
  import numpy
  import pandas
  from sklearn.model_selection import RandomizedSearchCV
  from sklearn.pipeline import Pipeline
  from greykite.common.constants import ACTUAL_COL
  from greykite.common.constants import PREDICTED_COL
  from greykite.common.constants import PREDICTION_BAND_COVERAGE
  from greykite.common.constants import TIME_COL
  from greykite.common.constants import VALUE_COL
  from greykite.common.evaluation import EvaluationMetricEnum
  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.framework.constants import FRACTION_OUTSIDE_TOLERANCE_NAME
  from greykite.framework.output.univariate_forecast import UnivariateForecast
  from greykite.framework.pipeline.pipeline import validate_pipeline_input
  from greykite.framework.pipeline.utils import get_score_func_with_aggregation
  from greykite.framework.utils.result_summary import summarize_grid_search_results
  from greykite.sklearn.estimator.simple_silverkite_estimator import SimpleSilverkiteEstimator
  from greykite.sklearn.sklearn_scorer import _PredictScorerDF
label_desc: Use image node_id 7 for calling a global function with example usage: mock_pipeline(df, time_col, value_col, date_format, tz, freq, train_end_date, anomaly_info, pipeline, regressor_cols, lagged_regressor_cols, estimator, hyperparameter_grid, hyperparameter_budget, n_jobs, verbose, forecast_horizon, coverage, test_horizon, periods_between_train_test, agg_periods, agg_func, score_func, score_func_greater_is_better, cv_report_metrics, null_model_params, relative_error_tolerance, cv_horizon, cv_min_train_periods, cv_expanding_window, cv_use_most_recent_splits, cv_periods_between_splits, cv_periods_between_train_test, cv_max_splits) and returns: dict