code: def test_get_silverkite_holidays():
      """Tests get_silverkite_holidays"""
      silverkite = SimpleSilverkiteForecast()
      # tests default values
      holidays = (
          silverkite._SimpleSilverkiteForecast__get_silverkite_holidays(
              holiday_lookup_countries="auto",
              holidays_to_model_separately="auto",
              start_year=2017,
              end_year=2025,
              pre_num=2,
              post_num=2,
          )
      )
      expected = generate_holiday_events(
          countries=SilverkiteHoliday.HOLIDAY_LOOKUP_COUNTRIES_AUTO,
          holidays_to_model_separately=SilverkiteHoliday.HOLIDAYS_TO_MODEL_SEPARATELY_AUTO,
          year_start=2016,
          year_end=2026,
          pre_num=2,
          post_num=2,
      )
      assert_equal(holidays, expected)
  
      # tests ALL_HOLIDAYS_IN_COUNTRIES option
      holiday_lookup_countries = ["UK", "CN", "IN"]
      holidays = silverkite._SimpleSilverkiteForecast__get_silverkite_holidays(
          holiday_lookup_countries=holiday_lookup_countries,
          holidays_to_model_separately=SilverkiteHoliday.ALL_HOLIDAYS_IN_COUNTRIES,
          start_year=2017,
          end_year=2025,
          pre_num=1,
          post_num=3,
      )
      holidays_to_model_separately = (
          get_available_holidays_across_countries(
              countries=holiday_lookup_countries,
              year_start=2016,
              year_end=2026,
          )
      )
      expected = generate_holiday_events(
          countries=holiday_lookup_countries,
          holidays_to_model_separately=holidays_to_model_separately,
          year_start=2016,
          year_end=2026,
          pre_num=1,
          post_num=3,
      )
      assert_equal(holidays, expected)
  
      # custom values
      holiday_lookup_countries = ["US"]
      holidays_to_model_separately = ["New Year's Day", "Christmas Day"]
      pre_post_num_dict = {
          "New Year's Day": (7, 3),
          "Christmas Day": (3, 3),
      }
      holidays = (
          silverkite._SimpleSilverkiteForecast__get_silverkite_holidays(
              holiday_lookup_countries=holiday_lookup_countries,
              holidays_to_model_separately=holidays_to_model_separately,
              start_year=2021,
              end_year=2022,
              pre_num=2,
              post_num=2,
              pre_post_num_dict=pre_post_num_dict,
          )
      )
      expected = generate_holiday_events(
          countries=holiday_lookup_countries,
          holidays_to_model_separately=holidays_to_model_separately,
          year_start=2020,
          year_end=2023,
          pre_num=2,
          post_num=2,
          pre_post_num_dict=pre_post_num_dict,
      )
      assert_equal(holidays, expected)
  
      # singleton string
      holiday_lookup_countries = "India"
      holidays_to_model_separately = "New Year's Day"
      with pytest.raises(
          ValueError,
          match="`holiday_lookup_countries` should be a list, found India",
      ):
          silverkite._SimpleSilverkiteForecast__get_silverkite_holidays(
              holiday_lookup_countries=holiday_lookup_countries,
              holidays_to_model_separately="auto",
              start_year=2021,
              end_year=2022,
              pre_num=2,
              post_num=2,
          )
      with pytest.raises(
          ValueError,
          match="`holidays_to_model_separately` should be a list, found New Year's Day",
      ):
          silverkite._SimpleSilverkiteForecast__get_silverkite_holidays(
              holiday_lookup_countries="auto",
              holidays_to_model_separately=holidays_to_model_separately,
              start_year=2021,
              end_year=2022,
              pre_num=2,
              post_num=2,
          )
  
      # empty list or None
      holiday_lookup_countries = None
      holidays_to_model_separately = None
      holidays = (
          silverkite._SimpleSilverkiteForecast__get_silverkite_holidays(
              holiday_lookup_countries=holiday_lookup_countries,
              holidays_to_model_separately=holidays_to_model_separately,
              start_year=2021,
              end_year=2022,
              pre_num=2,
              post_num=2,
          )
      )
      assert holidays is None
  
      holiday_lookup_countries = []
      holidays_to_model_separately = "auto"
      holidays = (
          silverkite._SimpleSilverkiteForecast__get_silverkite_holidays(
              holiday_lookup_countries=holiday_lookup_countries,
              holidays_to_model_separately=holidays_to_model_separately,
              start_year=2021,
              end_year=2022,
              pre_num=2,
              post_num=2,
          )
      )
      assert holidays is None
  
      holiday_lookup_countries = "auto"
      holidays_to_model_separately = []
      holidays = (
          silverkite._SimpleSilverkiteForecast__get_silverkite_holidays(
              holiday_lookup_countries=holiday_lookup_countries,
              holidays_to_model_separately=holidays_to_model_separately,
              start_year=2021,
              end_year=2022,
              pre_num=0,
              post_num=0,
          )
      )
      assert list(holidays.keys()) == ["Other"]
  
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 18 for calling a global function with example usage: test_get_silverkite_holidays() without return types