code: def test_run_template_1():
      """Runs default template"""
      data = generate_df_for_tests(freq="H", periods=700 * 24)
      df = data["train_df"]
      forecast_horizon = data["test_df"].shape[0]
  
      config = ForecastConfig(
          model_template=ModelTemplateEnum.SK.name,
          forecast_horizon=forecast_horizon,
      )
  
      with warnings.catch_warnings():
          warnings.simplefilter("ignore")
          result = Forecaster().run_forecast_config(
              df=df,
              config=config,
          )
  
          rmse = (
              EvaluationMetricEnum.RootMeanSquaredError.get_metric_name()
          )
          q80 = EvaluationMetricEnum.Quantile80.get_metric_name()
          assert result.backtest.test_evaluation[rmse] == pytest.approx(
              2.037, rel=1e-2
          )
          assert result.backtest.test_evaluation[q80] == pytest.approx(
              0.836, rel=1e-2
          )
          assert result.forecast.train_evaluation[
              rmse
          ] == pytest.approx(2.004, rel=1e-2)
          assert result.forecast.train_evaluation[q80] == pytest.approx(
              0.800, rel=1e-2
          )
          check_forecast_pipeline_result(
              result,
              coverage=None,
              strategy=None,
              score_func=EvaluationMetricEnum.MeanAbsolutePercentError.name,
              greater_is_better=False,
          )
  
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 12 for calling a global function with example usage: test_run_template_1() without return types