code: def test_params():
      time_col = "ts"
      # value_col name is chosen such that it contains keywords "ct" and "sin"
      # so that we can test patterns specified for each component work correctly
      value_col = "basin_impact"
      return dict(
          time_col=time_col,
          value_col=value_col,
          df=pd.DataFrame(
              {
                  time_col: [
                      datetime.datetime(2018, 1, 1),
                      datetime.datetime(2018, 1, 2),
                      datetime.datetime(2018, 1, 3),
                      datetime.datetime(2018, 1, 4),
                      datetime.datetime(2018, 1, 5),
                  ],
                  value_col: [10, 10, 10, 10, 10],
                  "dummy_col": [0, 0, 0, 0, 0],
              }
          ),
          feature_df=pd.DataFrame(
              {
                  # Trend columns: growth, changepoints and interactions (total 5 columns)
                  "ct1": np.array([1.0, 1.0, 1.0, 1.0, 1.0]),
                  "ct1:tod": np.array([1.0, 1.0, 1.0, 1.0, 1.0]),
                  "ct_sqrt": np.array([1.0, 1.0, 1.0, 1.0, 1.0]),
                  "changepoint0_2018_01_02_00": np.array(
                      [1.0, 1.0, 1.0, 1.0, 1.0]
                  ),
                  "changepoint1_2018_01_04_00": np.array(
                      [1.0, 1.0, 1.0, 1.0, 1.0]
                  ),
                  # Lag columns: autoregression, lagged regressor
                  f"{value_col}_lag1": np.array(
                      [4.0, 4.0, 4.0, 4.0, 4.0]
                  ),
                  f"{value_col}_avglag_3_5": np.array(
                      [4.0, 4.0, 4.0, 4.0, 4.0]
                  ),
                  "regressor1_lag1": np.array(
                      [4.0, 4.0, 4.0, 4.0, 4.0]
                  ),
                  "regressor_categ_avglag_4_6": np.array(
                      [4.0, 4.0, 4.0, 4.0, 4.0]
                  ),
                  # Daily seasonality with interaction (total 4 columns)
                  "sin1_tow_weekly": np.array(
                      [2.0, 2.0, 2.0, 2.0, 2.0]
                  ),
                  "cos1_tow_weekly": np.array(
                      [2.0, 2.0, 2.0, 2.0, 2.0]
                  ),
                  "is_weekend[T.True]:sin1_tow_weekly": np.array(
                      [2.0, 2.0, 2.0, 2.0, 2.0]
                  ),
                  "is_weekend[T.True]:cos1_tow_weekly": np.array(
                      [2.0, 2.0, 2.0, 2.0, 2.0]
                  ),
                  # Yearly seasonality (total 6 columns)
                  "sin1_ct1_yearly": np.array(
                      [3.0, 3.0, 3.0, 3.0, 3.0]
                  ),
                  "cos1_ct1_yearly": np.array(
                      [3.0, 3.0, 3.0, 3.0, 3.0]
                  ),
                  "sin2_ct1_yearly": np.array(
                      [3.0, 3.0, 3.0, 3.0, 3.0]
                  ),
                  "cos2_ct1_yearly": np.array(
                      [3.0, 3.0, 3.0, 3.0, 3.0]
                  ),
                  "sin3_ct1_yearly": np.array(
                      [3.0, 3.0, 3.0, 3.0, 3.0]
                  ),
                  "cos3_ct1_yearly": np.array(
                      [3.0, 3.0, 3.0, 3.0, 3.0]
                  ),
                  # Holiday with pre and post effect (1 at the where the date and event match)
                  # e.g. New Years Day is 1 at 1st January, 0 rest of the days
                  "Q('events_New Years Day')[T.event]": np.array(
                      [1.0, 0.0, 0.0, 0.0, 0.0]
                  ),
                  "Q('events_New Years Day_minus_1')[T.event]": np.array(
                      [0.0, 0.0, 0.0, 0.0, 0.0]
                  ),
                  "Q('events_New Years Day_minus_2')[T.event]": np.array(
                      [0.0, 0.0, 0.0, 0.0, 0.0]
                  ),
                  "Q('events_New Years Day_plus_1')[T.event]": np.array(
                      [0.0, 1.0, 0.0, 0.0, 0.0]
                  ),
                  "Q('events_New Years Day_plus_2')[T.event]": np.array(
                      [0.0, 0.0, 1.0, 0.0, 0.0]
                  ),
              }
          ),
      )
  
imports: import datetime
  import numpy
  import pandas
  import pytest
  from sklearn.exceptions import NotFittedError
  from sklearn.metrics import mean_absolute_error
  from sklearn.metrics import mean_squared_error
  from testfixtures import LogCapture
  import greykite.common.constants
  from greykite.algo.forecast.silverkite.forecast_silverkite import SilverkiteForecast
  from greykite.common.data_loader import DataLoader
  from greykite.common.features.timeseries_features import convert_date_to_continuous_time
  from greykite.common.python_utils import assert_equal
  from greykite.common.testing_utils import daily_data_reg
  from greykite.common.testing_utils import generate_df_for_tests
  from greykite.common.testing_utils import generate_df_with_reg_for_tests
  from greykite.sklearn.estimator.base_silverkite_estimator import BaseSilverkiteEstimator
  from greykite.sklearn.estimator.testing_utils import params_component_breakdowns
  from greykite.sklearn.estimator.testing_utils import params_components
label_desc: Use image node_id 7 for calling a global function with example usage: test_params() and returns: dict