code: def test_get_default_time_parameters():
      """Tests get_default_time_parameters function"""
      # enough data to support forecast_horizon=test_horizon=cv_horizon
      one_hour = 3600.0
      num_observations = 100
      time_params = get_default_time_parameters(
          period=one_hour,
          num_observations=num_observations,
          forecast_horizon=None,
          test_horizon=None,
          periods_between_train_test=None,
          cv_horizon=None,
          cv_min_train_periods=None,
          cv_expanding_window=False,
          cv_periods_between_splits=None,
          cv_periods_between_train_test=0,
          cv_max_splits=3,
      )
      assert time_params == {
          "forecast_horizon": 24,
          "test_horizon": 24,
          "periods_between_train_test": 0,
          "cv_horizon": 24,
          "cv_min_train_periods": None,
          "cv_periods_between_train_test": 0,
      }
  
      # default CV split will be used
      num_observations = 100
      time_params = get_default_time_parameters(
          period=24 * one_hour,
          num_observations=num_observations,
          forecast_horizon=None,
          test_horizon=None,
          periods_between_train_test=None,
          cv_horizon=None,
          cv_min_train_periods=None,
          cv_expanding_window=False,
          cv_periods_between_splits=None,
          cv_periods_between_train_test=0,
          cv_max_splits=3,
      )
      assert time_params == {
          "forecast_horizon": 30,
          "test_horizon": 30,
          "periods_between_train_test": 0,
          "cv_horizon": 30,
          "cv_min_train_periods": None,
          "cv_periods_between_train_test": 0,
      }
  
      # default CV split will be used
      num_observations = 20
      time_params = get_default_time_parameters(
          period=24 * one_hour,
          num_observations=num_observations,
          forecast_horizon=None,
          test_horizon=None,
          cv_horizon=None,
          periods_between_train_test=None,
          cv_min_train_periods=4,
          cv_expanding_window=False,
          cv_periods_between_splits=None,
          cv_periods_between_train_test=1,
          cv_max_splits=3,
      )
      assert time_params == {
          "forecast_horizon": 10,
          "test_horizon": 10,
          "periods_between_train_test": 0,
          "cv_horizon": 10,
          "cv_min_train_periods": 4,
          "cv_periods_between_train_test": 1,
      }
  
      # default CV split will be used
      num_observations = 20
      time_params = get_default_time_parameters(
          period=24 * one_hour,
          num_observations=num_observations,
          forecast_horizon=None,
          test_horizon=None,
          periods_between_train_test=10,
          cv_horizon=None,
          cv_min_train_periods=10,
          cv_expanding_window=False,
          cv_periods_between_splits=None,
          cv_periods_between_train_test=21,
          cv_max_splits=3,
      )
      assert time_params == {
          "forecast_horizon": 10,
          "test_horizon": 10,
          "periods_between_train_test": 10,
          "cv_horizon": 10,
          "cv_min_train_periods": 10,
          "cv_periods_between_train_test": 21,
      }
  
      # default CV split will be used
      num_observations = 20
      time_params = get_default_time_parameters(
          period=24 * one_hour,
          num_observations=num_observations,
          forecast_horizon=None,
          test_horizon=None,
          periods_between_train_test=5,
          cv_horizon=None,
          cv_min_train_periods=8,
          cv_expanding_window=False,
          cv_periods_between_splits=None,
          cv_periods_between_train_test=None,
          cv_max_splits=3,
      )
      assert time_params == {
          "forecast_horizon": 10,
          "test_horizon": 10,
          "periods_between_train_test": 5,
          "cv_horizon": 10,
          "cv_min_train_periods": 8,
          "cv_periods_between_train_test": 5,
      }
  
imports: import sys
  import warnings
  from functools import partial
  import numpy
  import pandas
  import pytest
  from scipy.stats import randint
  from sklearn.metrics import mean_absolute_error
  from sklearn.metrics import mean_squared_error
  from sklearn.metrics import median_absolute_error
  from sklearn.pipeline import Pipeline
  from testfixtures import LogCapture
  from greykite.common import constants
  from greykite.common.constants import FRACTION_OUTSIDE_TOLERANCE
  from greykite.common.constants import LOGGER_NAME
  from greykite.common.evaluation import EvaluationMetricEnum
  from greykite.common.evaluation import add_preaggregation_to_scorer
  from greykite.common.evaluation import fraction_outside_tolerance
  from greykite.common.python_utils import assert_equal
  from greykite.common.testing_utils import assert_eval_function_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 CUSTOM_SCORE_FUNC_NAME
  from greykite.framework.constants import CV_REPORT_METRICS_ALL
  from greykite.framework.constants import FRACTION_OUTSIDE_TOLERANCE_NAME
  from greykite.framework.pipeline.utils import get_basic_pipeline
  from greykite.framework.pipeline.utils import get_best_index
  from greykite.framework.pipeline.utils import get_default_time_parameters
  from greykite.framework.pipeline.utils import get_forecast
  from greykite.framework.pipeline.utils import get_hyperparameter_searcher
  from greykite.framework.pipeline.utils import get_score_func_with_aggregation
  from greykite.framework.pipeline.utils import get_scoring_and_refit
  from greykite.framework.utils.framework_testing_utils import assert_proper_grid_search
  from greykite.framework.utils.framework_testing_utils import assert_refit
  from greykite.framework.utils.framework_testing_utils import assert_scoring
  from greykite.sklearn.cross_validation import RollingTimeSeriesSplit
  from greykite.sklearn.estimator.null_model import DummyEstimator
  from greykite.sklearn.estimator.prophet_estimator import ProphetEstimator
  from greykite.sklearn.estimator.silverkite_estimator import SilverkiteEstimator
  from greykite.sklearn.transform.column_selector import ColumnSelector
label_desc: Use image node_id 2 for calling a global function with example usage: test_get_default_time_parameters() without return types