code: def test_silverkite_wow_hourly(hourly_data, config_silverkite_daily):
      """Tests Silverkite + WOW estimator."""
      df = hourly_data.iloc[:-24]
      df_test = hourly_data.iloc[-24:].reset_index(drop=True)
      forecast_horizon = len(df_test)
      config_silverkite_daily.estimator_params[
          "forecast_horizon"
      ] = forecast_horizon
      params = dict(
          forecast_horizon=forecast_horizon,
          freq="H",
          model_configs=[
              config_silverkite_daily,
              MultistageForecastModelConfig(
                  train_length="500D",
                  fit_length="500D",
                  agg_func="mean",
                  agg_freq="H",
                  estimator=LagBasedEstimator,
                  estimator_params=dict(
                      lags=[1],
                      lag_unit="week",
                      agg_func="mean",
                      series_na_fill_func=lambda x: x.bfill().ffill(),
                  ),
              ),
          ],
      )
      model = MultistageForecastEstimator(**params)
      # Tests fit
      model.fit(df)
      # Checks models
      # Intercept, ct1, 6 weekly seas terms, 10 quarterly seas terms
      assert model.models[0].model_dict["x_mat"].shape[1] == 18
  
      # Tests prediction
      df_fit = model.predict(df)
      assert df_fit[cst.PREDICTED_COL].isna().sum() == 0
      df_predict = model.predict(df_test)
      assert df_predict[cst.PREDICTED_COL].isna().sum() == 0
  
imports: import datetime
  import numpy
  import pandas
  import pytest
  from testfixtures import LogCapture
  import greykite.common.constants
  from greykite.common.testing_utils import generate_df_for_tests
  from greykite.sklearn.estimator.lag_based_estimator import LagBasedEstimator
  from greykite.sklearn.estimator.multistage_forecast_estimator import MultistageForecastEstimator
  from greykite.sklearn.estimator.multistage_forecast_estimator import MultistageForecastModelConfig
  from greykite.sklearn.estimator.simple_silverkite_estimator import SimpleSilverkiteEstimator
  from greykite.sklearn.uncertainty.uncertainty_methods import UncertaintyMethodEnum
label_desc: Use image node_id 29 for calling a global function with example usage: test_silverkite_wow_hourly(hourly_data, config_silverkite_daily) without return types