code: def test_generate_holiday_events3():
      """Tests generate_holiday_events pre_post_num_dict parameter"""
      # Tests pre_post_num_dict
      countries = ["UnitedStates", "India"]
      year_start = 2019
      year_end = 2020
      holidays_to_model_separately = [
          "New Year's Day",
          "Diwali",
          "Columbus Day",
      ]
      pre_num = 2
      post_num = 2
      pre_post_num_dict = {
          "New Year's Day": (0, 2),
          "Columbus Day": (1, 3),
      }
      daily_event_df_dict = generate_holiday_events(
          countries=countries,
          holidays_to_model_separately=holidays_to_model_separately,
          year_start=year_start,
          year_end=year_end,
          pre_num=pre_num,
          post_num=post_num,
          pre_post_num_dict=pre_post_num_dict,
      )
  
      # expected
      expected_holidays = [
          "New Years Day_plus_2",
          "Diwali_minus_2",
          "Diwali_plus_2",
          "Columbus Day_minus_1",
          "Columbus Day_plus_3",
      ]
      assert all(
          [
              holiday in daily_event_df_dict.keys()
              for holiday in expected_holidays
          ]
      )
      unexpected_holidays = [
          "New Years Day_minus_1",
          "New Years Day_plus_3",
          "Diwali_minus_3",
          "Diwali_plus_3",
          "Columbus Day_minus_2",
          "Columbus Day_plus_4",
      ]
      assert not any(
          [
              holiday in daily_event_df_dict.keys()
              for holiday in unexpected_holidays
          ]
      )
  
      with pytest.warns(UserWarning) as record:
          pre_post_num_dict = {"Bank Holiday": (1, 1)}
          generate_holiday_events(
              countries=countries,
              holidays_to_model_separately=holidays_to_model_separately,
              year_start=year_start,
              year_end=year_end,
              pre_num=pre_num,
              post_num=post_num,
              pre_post_num_dict=pre_post_num_dict,
          )
          assert (
              "Requested holiday 'Bank Holiday' is not valid. Valid holidays are"
              in record[0].message.args[0]
          )
  
imports: import datetime
  import pandas
  import pytest
  from greykite.algo.forecast.silverkite.forecast_simple_silverkite_helper import cols_interact
  from greykite.algo.forecast.silverkite.forecast_simple_silverkite_helper import dedup_holiday_dict
  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.algo.forecast.silverkite.forecast_simple_silverkite_helper import patsy_categorical_term
  from greykite.algo.forecast.silverkite.forecast_simple_silverkite_helper import split_events_into_dictionaries
  from greykite.common.constants import EVENT_DEFAULT
  from greykite.common.constants import EVENT_DF_DATE_COL
  from greykite.common.constants import EVENT_DF_LABEL_COL
  from greykite.common.constants import EVENT_INDICATOR
  from greykite.common.features.timeseries_features import get_holidays
label_desc: Use image node_id 6 for calling a global function with example usage: test_generate_holiday_events3() without return types