code: def test_prophet_hyperparameter_grid_events():
      """Tests get_prophet_hyperparameter_grid for selected Countries" holidays"""
      # holiday params
      start_year = 2018
      end_year = 2022
      holiday_pre_num_days = [1]
      holiday_post_num_days = [1]
      holiday_lookup_countries = ["UnitedStates", "China", "India"]
      holidays_prior_scale = [5.0, 10.0, 15.0]
      events = {
          "holiday_lookup_countries": holiday_lookup_countries,
          "holiday_pre_num_days": holiday_pre_num_days,
          "holiday_post_num_days": holiday_post_num_days,
          "start_year": start_year,
          "end_year": end_year,
          "holidays_prior_scale": holidays_prior_scale,
      }
      model_components = ModelComponentsParam(events=events)
      template = ProphetTemplate()
      template.config = template.apply_forecast_config_defaults()
      template.config.model_components_param = model_components
      hyperparameter_grid = template.get_hyperparameter_grid()
  
      # Expected Values
      # Holidays df, based on given holidays params
      expected_holidays = template.get_prophet_holidays(
          year_list=list(range(start_year - 1, end_year + 2)),
          countries=holiday_lookup_countries,
          lower_window=-holiday_pre_num_days[0],
          upper_window=holiday_post_num_days[0],
      )
  
      expected_grid = {
          "estimator__growth": ["linear"],
          "estimator__seasonality_mode": ["additive"],
          "estimator__seasonality_prior_scale": [10.0],
          "estimator__yearly_seasonality": ["auto"],
          "estimator__weekly_seasonality": ["auto"],
          "estimator__daily_seasonality": ["auto"],
          "estimator__add_seasonality_dict": [None],
          "estimator__holidays": [expected_holidays],
          "estimator__holidays_prior_scale": [5.0, 10.0, 15.0],
          "estimator__changepoint_prior_scale": [0.05],
          "estimator__changepoints": [None],
          "estimator__n_changepoints": [25],
          "estimator__changepoint_range": [0.8],
          "estimator__mcmc_samples": [0],
          "estimator__uncertainty_samples": [1000],
          "estimator__add_regressor_dict": [None],
      }
      # Assertions
      assert_equal(actual=hyperparameter_grid, expected=expected_grid)
  
imports: import datetime
  import sys
  import warnings
  import numpy
  import pandas
  import pytest
  from pandas.testing import assert_frame_equal
  import greykite.common.constants
  from greykite.common.evaluation import EvaluationMetricEnum
  from greykite.common.python_utils import assert_equal
  from greykite.common.testing_utils import generate_df_for_tests
  from greykite.common.testing_utils import generate_df_with_reg_for_tests
  from greykite.framework.constants import COMPUTATION_N_JOBS
  from greykite.framework.constants import CV_REPORT_METRICS_ALL
  from greykite.framework.templates.autogen.forecast_config import ComputationParam
  from greykite.framework.templates.autogen.forecast_config import EvaluationMetricParam
  from greykite.framework.templates.autogen.forecast_config import EvaluationPeriodParam
  from greykite.framework.templates.autogen.forecast_config import ForecastConfig
  from greykite.framework.templates.autogen.forecast_config import MetadataParam
  from greykite.framework.templates.autogen.forecast_config import ModelComponentsParam
  from greykite.framework.templates.forecaster import Forecaster
  from greykite.framework.templates.model_templates import ModelTemplateEnum
  from greykite.framework.templates.prophet_template import ProphetTemplate
  from greykite.framework.utils.framework_testing_utils import assert_basic_pipeline_equal
  from greykite.sklearn.estimator.prophet_estimator import ProphetEstimator
label_desc: Use image node_id 7 for calling a global function with example usage: test_prophet_hyperparameter_grid_events() without return types