code: def test_multistage_forecast_silverkite_wow():
      """Tests the SILVERKITE_WOW template. To alert any changes to the template."""
      assert (
          len(SILVERKITE_WOW.custom["multistage_forecast_configs"]) == 2
      )
  
      assert (
          SILVERKITE_WOW.custom["multistage_forecast_configs"][
              0
          ].train_length
          == f"1096D"
      )
      assert (
          SILVERKITE_WOW.custom["multistage_forecast_configs"][
              0
          ].fit_length
          is None
      )
      assert (
          SILVERKITE_WOW.custom["multistage_forecast_configs"][
              0
          ].agg_func
          == "nanmean"
      )
      assert (
          SILVERKITE_WOW.custom["multistage_forecast_configs"][
              0
          ].agg_freq
          == "D"
      )
      assert (
          SILVERKITE_WOW.custom["multistage_forecast_configs"][
              0
          ].model_template
          == "SILVERKITE_EMPTY"
      )
      assert SILVERKITE_WOW.custom["multistage_forecast_configs"][
          0
      ].model_components == ModelComponentsParam(
          seasonality={
              "auto_seasonality": True,
              "yearly_seasonality": True,
              "quarterly_seasonality": True,
              "monthly_seasonality": True,
              "weekly_seasonality": False,
              "daily_seasonality": False,
          },
          growth={"growth_term": "linear"},
          events={
              "auto_holiday": True,
              "holidays_to_model_separately": None,
              "holiday_lookup_countries": ("US",),
              "holiday_pre_num_days": 0,
              "holiday_post_num_days": 0,
              "holiday_pre_post_num_dict": None,
              "daily_event_df_dict": None,
              "auto_holiday_params": None,
              "daily_event_neighbor_impact": None,
              "daily_event_shifted_effect": None,
          },
          changepoints={
              "auto_growth": True,
              "changepoints_dict": None,
              "seasonality_changepoints_dict": None,
          },
          autoregression={"autoreg_dict": None},
          regressors={"regressor_cols": None},
          lagged_regressors={"lagged_regressor_dict": None},
          uncertainty={"uncertainty_dict": None},
          custom={
              "fit_algorithm_dict": {
                  "fit_algorithm": "ridge",
                  "fit_algorithm_params": None,
              },
              "feature_sets_enabled": None,
              "max_daily_seas_interaction_order": 0,
              "max_weekly_seas_interaction_order": 0,
              "extra_pred_cols": [],
              "min_admissible_value": None,
              "max_admissible_value": None,
              "drop_pred_cols": None,
              "explicit_pred_cols": None,
              "regression_weight_col": None,
              "remove_intercept": False,
              "normalize_method": "zero_to_one",
          },
      )
  
      assert (
          SILVERKITE_WOW.custom["multistage_forecast_configs"][
              1
          ].train_length
          == f"28D"
      )
      assert (
          SILVERKITE_WOW.custom["multistage_forecast_configs"][
              1
          ].fit_length
          is None
      )
      assert (
          SILVERKITE_WOW.custom["multistage_forecast_configs"][
              1
          ].agg_func
          == "nanmean"
      )
      assert (
          SILVERKITE_WOW.custom["multistage_forecast_configs"][
              1
          ].agg_freq
          is None
      )
      assert (
          SILVERKITE_WOW.custom["multistage_forecast_configs"][
              1
          ].model_template
          == "LAG_BASED"
      )
      assert SILVERKITE_WOW.custom["multistage_forecast_configs"][
          1
      ].model_components == ModelComponentsParam(
          custom={
              "freq": None,
              "lag_unit": "week",
              "lags": [1],
              "agg_func": "mean",
              "agg_func_params": None,
              "past_df": None,
              "series_na_fill_func": None,
          },
          uncertainty={"uncertainty_dict": None},
      )
  
file_path: greykite/greykite/tests/framework/templates/test_multistage_forecast_template_config.py
imports: from greykite.framework.templates.auto_arima_template import AutoArimaTemplate
  from greykite.framework.templates.autogen.forecast_config import ModelComponentsParam
  from greykite.framework.templates.multistage_forecast_template_config import MULTISTAGE_EMPTY
  from greykite.framework.templates.multistage_forecast_template_config import SILVERKITE_TWO_STAGE
  from greykite.framework.templates.multistage_forecast_template_config import SILVERKITE_WOW
  from greykite.framework.templates.multistage_forecast_template_config import MultistageForecastModelTemplateEnum
  from greykite.framework.templates.multistage_forecast_template_config import MultistageForecastTemplateConfig
  from greykite.framework.templates.multistage_forecast_template_config import MultistageForecastTemplateConstants
  from greykite.framework.templates.prophet_template import ProphetTemplate
  from greykite.framework.templates.silverkite_template import SilverkiteTemplate
  from greykite.framework.templates.simple_silverkite_template import SimpleSilverkiteTemplate
label_desc: Use image node_id 4 for calling a global function with example usage: test_multistage_forecast_silverkite_wow() without return types