code: def test_daily_event_df_dict(hourly_data):
      """Tests ``convert_params`` daily_event_df_dict output"""
      silverkite = SimpleSilverkiteForecast()
      time_properties = {
          "ts": None,
          "period": TimeEnum.ONE_HOUR_IN_SECONDS.value,
          "simple_freq": SimpleTimeFrequencyEnum.HOUR,
          "num_training_points": hourly_data.shape[0],
          "num_training_days": math.floor(hourly_data.shape[0] / 24),
          "start_year": 2018,
          "end_year": 2019,
          "origin_for_time_vars": 2018.12,
      }
      holiday_lookup_countries = ["UnitedStates", "China"]
      holidays_to_model_separately = (
          SilverkiteHoliday.ALL_HOLIDAYS_IN_COUNTRIES
      )
      holiday_pre_num_days = 1
      holiday_post_num_days = 2
      holiday_pre_post_num_dict = {
          "New Year's Day": (7, 3),
          "Christmas Day": (3, 3),
      }
      expected = (
          silverkite._SimpleSilverkiteForecast__get_silverkite_holidays(
              holiday_lookup_countries=holiday_lookup_countries,
              holidays_to_model_separately=holidays_to_model_separately,
              start_year=time_properties["start_year"],
              end_year=time_properties["end_year"],
              pre_num=holiday_pre_num_days,
              post_num=holiday_post_num_days,
              pre_post_num_dict=holiday_pre_post_num_dict,
          )
      )
  
      # uses provided ``time_properties``
      # (checks that ``time_properties`` is properly set)
      parameters = silverkite.convert_params(
          df=hourly_data,
          time_col=cst.TIME_COL,
          value_col=cst.VALUE_COL,
          time_properties=time_properties,
          holiday_lookup_countries=holiday_lookup_countries,
          holidays_to_model_separately=holidays_to_model_separately,
          holiday_pre_num_days=holiday_pre_num_days,
          holiday_post_num_days=holiday_post_num_days,
          holiday_pre_post_num_dict=holiday_pre_post_num_dict,
      )
      assert_equal(parameters["daily_event_df_dict"], expected)
  
      # uses time properties calculated from the data
      parameters = silverkite.convert_params(
          df=hourly_data,
          time_col=cst.TIME_COL,
          value_col=cst.VALUE_COL,
          holiday_lookup_countries=holiday_lookup_countries,
          holidays_to_model_separately=holidays_to_model_separately,
          holiday_pre_num_days=holiday_pre_num_days,
          holiday_post_num_days=holiday_post_num_days,
          holiday_pre_post_num_dict=holiday_pre_post_num_dict,
      )
      assert_equal(parameters["daily_event_df_dict"], expected)
  
      # With `daily_event_df_dict` and holidays
      countries = ["US", "India", "UnitedKingdom"]
      event_df_dict = get_holidays(
          countries, year_start=2015, year_end=2030
      )
      parameters = silverkite.convert_params(
          df=hourly_data,
          time_col=cst.TIME_COL,
          value_col=cst.VALUE_COL,
          holiday_lookup_countries=holiday_lookup_countries,
          holidays_to_model_separately=holidays_to_model_separately,
          holiday_pre_num_days=holiday_pre_num_days,
          holiday_post_num_days=holiday_post_num_days,
          holiday_pre_post_num_dict=holiday_pre_post_num_dict,
          daily_event_df_dict=event_df_dict,
      )
      expected = update_dictionary(
          expected, overwrite_dict=event_df_dict
      )
      assert_equal(parameters["daily_event_df_dict"], expected)
  
      # With `daily_event_df_dict` and no holidays
      parameters = silverkite.convert_params(
          df=hourly_data,
          time_col=cst.TIME_COL,
          value_col=cst.VALUE_COL,
          holiday_lookup_countries=None,
          holidays_to_model_separately=None,
          daily_event_df_dict=event_df_dict,
      )
      assert_equal(parameters["daily_event_df_dict"], event_df_dict)
  
      # With no `daily_event_df_dict` and no holidays
      parameters = silverkite.convert_params(
          df=hourly_data,
          time_col=cst.TIME_COL,
          value_col=cst.VALUE_COL,
          holiday_lookup_countries=None,
          holidays_to_model_separately=None,
          daily_event_df_dict=None,
      )
      assert_equal(parameters["daily_event_df_dict"], None)
  
imports: import datetime
  import math
  import sys
  import warnings
  from datetime import timedelta
  import pandas
  import pytest
  from testfixtures import LogCapture
  import greykite.common.constants
  from greykite.algo.changepoint.adalasso.changepoint_detector import ChangepointDetector
  from greykite.algo.forecast.silverkite.constants.silverkite_column import SilverkiteColumn
  from greykite.algo.forecast.silverkite.constants.silverkite_holiday import SilverkiteHoliday
  from greykite.algo.forecast.silverkite.constants.silverkite_seasonality import SilverkiteSeasonality
  from greykite.algo.forecast.silverkite.constants.silverkite_seasonality import SilverkiteSeasonalityEnum
  from greykite.algo.forecast.silverkite.forecast_simple_silverkite import SimpleSilverkiteForecast
  from greykite.algo.forecast.silverkite.forecast_simple_silverkite_helper import generate_holiday_events
  from greykite.common.constants import CHANGEPOINT_COL_PREFIX
  from greykite.common.constants import EVENT_DF_DATE_COL
  from greykite.common.constants import EVENT_DF_LABEL_COL
  from greykite.common.constants import LOGGER_NAME
  from greykite.common.constants import TIME_COL
  from greykite.common.constants import VALUE_COL
  from greykite.common.data_loader import DataLoader
  from greykite.common.enums import SimpleTimeFrequencyEnum
  from greykite.common.enums import TimeEnum
  from greykite.common.features.timeseries_features import get_available_holidays_across_countries
  from greykite.common.features.timeseries_features import get_holidays
  from greykite.common.python_utils import assert_equal
  from greykite.common.python_utils import update_dictionary
  from greykite.common.testing_utils import generate_df_for_tests
  from greykite.common.testing_utils import generate_df_with_reg_for_tests
label_desc: Use image node_id 5 for calling a global function with example usage: test_daily_event_df_dict(hourly_data) without return types