code: def test_silverkite_template():
      """Tests test_silverkite_template with default config"""
      data = generate_df_for_tests(freq="D", periods=10)
      df = data["df"]
      template = SilverkiteTemplate()
      config = ForecastConfig(model_template="SK")
      params = template.apply_template_for_pipeline_params(
          df=df, config=config
      )
      assert config == ForecastConfig(
          model_template="SK"
      )  # not modified
      pipeline = params.pop("pipeline", None)
  
      metric = EvaluationMetricEnum.MeanAbsolutePercentError
      expected_params = dict(
          df=df,
          time_col=TIME_COL,
          value_col=VALUE_COL,
          date_format=None,
          freq=None,
          train_end_date=None,
          anomaly_info=None,
          # model
          regressor_cols=None,
          lagged_regressor_cols=None,
          estimator=None,
          hyperparameter_grid=template.hyperparameter_grid,
          hyperparameter_budget=None,
          n_jobs=COMPUTATION_N_JOBS,
          verbose=1,
          # forecast
          forecast_horizon=None,
          coverage=None,
          test_horizon=None,
          periods_between_train_test=None,
          agg_periods=None,
          agg_func=None,
          # evaluation
          score_func=metric.name,
          score_func_greater_is_better=metric.get_metric_greater_is_better(),
          cv_report_metrics=CV_REPORT_METRICS_ALL,
          null_model_params=None,
          relative_error_tolerance=None,
          # CV
          cv_horizon=None,
          cv_min_train_periods=None,
          cv_expanding_window=True,
          cv_use_most_recent_splits=None,
          cv_periods_between_splits=None,
          cv_periods_between_train_test=None,
          cv_max_splits=3,
      )
      assert_basic_pipeline_equal(pipeline, template.pipeline)
      assert_equal(params, expected_params)
  
imports: import dataclasses
  import datetime
  import warnings
  import numpy
  import pandas
  import pytest
  from greykite.algo.forecast.silverkite.forecast_silverkite import SilverkiteForecast
  from greykite.algo.forecast.silverkite.forecast_simple_silverkite_helper import generate_holiday_events
  from greykite.algo.forecast.silverkite.forecast_simple_silverkite_helper import get_event_pred_cols
  from greykite.common.constants import ADJUSTMENT_DELTA_COL
  from greykite.common.constants import END_TIME_COL
  from greykite.common.constants import METRIC_COL
  from greykite.common.constants import PREDICTION_BAND_COVERAGE
  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.evaluation import EvaluationMetricEnum
  from greykite.common.python_utils import assert_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 COMPUTATION_N_JOBS
  from greykite.framework.constants import CV_REPORT_METRICS_ALL
  from greykite.framework.templates.autogen.forecast_config import ComputationParam
  from greykite.framework.templates.autogen.forecast_config import EvaluationMetricParam
  from greykite.framework.templates.autogen.forecast_config import EvaluationPeriodParam
  from greykite.framework.templates.autogen.forecast_config import ForecastConfig
  from greykite.framework.templates.autogen.forecast_config import MetadataParam
  from greykite.framework.templates.autogen.forecast_config import ModelComponentsParam
  from greykite.framework.templates.forecaster import Forecaster
  from greykite.framework.templates.model_templates import ModelTemplateEnum
  from greykite.framework.templates.silverkite_template import SilverkiteTemplate
  from greykite.framework.templates.silverkite_template import apply_default_model_components
  from greykite.framework.templates.silverkite_template import get_extra_pred_cols
  from greykite.framework.utils.framework_testing_utils import assert_basic_pipeline_equal
  from greykite.framework.utils.framework_testing_utils import check_forecast_pipeline_result
  from greykite.sklearn.estimator.silverkite_estimator import SilverkiteEstimator
label_desc: Use image node_id 10 for calling a global function with example usage: test_silverkite_template() without return types