code: def test_input(df, df_reg):
      """Tests whether input parameters are properly set in pipeline.
  
      Parameters tested:
  
          - df
          - time_col
          - value_col
          - date_format
          - tz
          - freq
          - anomaly_info
          - regressor_cols
          - lagged_regressor_cols
      """
      with warnings.catch_warnings():
          warnings.simplefilter("ignore")
          dummy_pipeline = get_dummy_pipeline()
          # anomaly adjustment adds 10.0 to every record
          adjustment_size = 10.0
          anomaly_df = pd.DataFrame(
              {
                  START_TIME_COL: [df[TIME_COL].min()],
                  END_TIME_COL: [df[TIME_COL].max()],
                  ADJUSTMENT_DELTA_COL: [adjustment_size],
                  METRIC_COL: [VALUE_COL],
              }
          )
          anomaly_info = {
              "value_col": VALUE_COL,
              "anomaly_df": anomaly_df,
              "start_time_col": START_TIME_COL,
              "end_time_col": END_TIME_COL,
              "adjustment_delta_col": ADJUSTMENT_DELTA_COL,
              "filter_by_dict": {METRIC_COL: VALUE_COL},
              "adjustment_method": "add",
          }
          result = forecast_pipeline(
              df,
              time_col=TIME_COL,
              value_col=VALUE_COL,
              date_format=None,
              tz=None,
              freq=None,
              anomaly_info=anomaly_info,
              pipeline=dummy_pipeline,
              hyperparameter_grid=None,
              forecast_horizon=10,
              test_horizon=10,
              cv_horizon=0,
          )
          ts: UnivariateTimeSeries = result.timeseries
          assert_equal(ts.anomaly_info, anomaly_info)
          assert_equal(
              ts.df[VALUE_COL].values,
              (df[VALUE_COL] + adjustment_size).values,
              check_names=False,
          )
          assert ts.df[TIME_COL][0] == df[TIME_COL].min()
          assert ts.original_time_col == TIME_COL
          assert ts.original_value_col == VALUE_COL
          assert ts.freq == "D"
          assert ts.time_stats["data_points"] == df.shape[0]
          assert not hasattr(ts.df.index.dtype, "tz")
  
      # with gaps, regressors, custom column names, date format, tz
      with warnings.catch_warnings():
          warnings.simplefilter("ignore")
          reg_cols = [
              "regressor1",
              "regressor2",
              "regressor_bool",
              "regressor_categ",
          ]
          lag_reg_cols = ["regressor1", "regressor_bool"]
          df_reg = df_reg.rename(
              {
                  TIME_COL: "custom_time_col",
                  VALUE_COL: "custom_value_col",
              },
              axis=1,
          )
          # changes date to string representation
          df_reg["custom_time_col"] = df_reg[
              "custom_time_col"
          ].dt.strftime("%Y-%m-%d-%H")
          # drops some rows to create gaps in input data
          drop_indices = [10, 20, 40, 41, 42, 43, 48, 49, 50, 55]
          df_reg.drop(drop_indices, axis=0, inplace=True)
          dummy_pipeline = get_dummy_pipeline(
              include_preprocessing=True,  # fills in gaps
              regressor_cols=reg_cols,
              lagged_regressor_cols=lag_reg_cols,
          )
          result = forecast_pipeline(
              df_reg,
              time_col="custom_time_col",
              value_col="custom_value_col",
              date_format="%Y-%m-%d-%H",
              tz="Europe/Berlin",
              freq="H",
              anomaly_info=None,
              pipeline=dummy_pipeline,
              regressor_cols=reg_cols,
              lagged_regressor_cols=lag_reg_cols,
              hyperparameter_grid=None,
              forecast_horizon=10,
              test_horizon=10,
              cv_horizon=0,
          )
          ts: UnivariateTimeSeries = result.timeseries
          assert ts.original_time_col == "custom_time_col"
          assert ts.original_value_col == "custom_value_col"
          assert ts.regressor_cols == reg_cols
          assert ts.lagged_regressor_cols == lag_reg_cols
          assert ts.freq == "H"
          assert (
              ts.time_stats["min_timestamp"]
              == pd.to_datetime(df_reg["custom_time_col"]).min()
          )
          assert (
              ts.time_stats["max_timestamp"]
              == pd.to_datetime(df_reg["custom_time_col"]).max()
          )
          assert ts.time_stats["added_timepoints"] == 10
          assert ts.time_stats["data_points"] == 2400
          assert ts.df.index.dtype.tz is not None
  
imports: import datetime
  import math
  import sys
  import warnings
  import numpy
  import pandas
  import pytest
  from scipy.stats import randint
  from sklearn.metrics import explained_variance_score
  from sklearn.metrics import mean_absolute_error
  from sklearn.metrics import mean_squared_error
  from sklearn.pipeline import Pipeline
  from greykite.common.constants import ACTUAL_COL
  from greykite.common.constants import ADJUSTMENT_DELTA_COL
  from greykite.common.constants import END_TIME_COL
  from greykite.common.constants import FRACTION_OUTSIDE_TOLERANCE
  from greykite.common.constants import METRIC_COL
  from greykite.common.constants import PREDICTED_COL
  from greykite.common.constants import QUANTILE_SUMMARY_COL
  from greykite.common.constants import START_TIME_COL
  from greykite.common.constants import TIME_COL
  from greykite.common.constants import VALUE_COL
  from greykite.common.constants import R2_null_model_score
  from greykite.common.evaluation import EvaluationMetricEnum
  from greykite.common.evaluation import add_finite_filter_to_scorer
  from greykite.common.evaluation import add_preaggregation_to_scorer
  from greykite.common.python_utils import assert_equal
  from greykite.common.python_utils import unique_elements_in_list
  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 CV_REPORT_METRICS_ALL
  from greykite.framework.constants import FRACTION_OUTSIDE_TOLERANCE_NAME
  from greykite.framework.input.univariate_time_series import UnivariateTimeSeries
  from greykite.framework.pipeline.pipeline import forecast_pipeline
  from greykite.framework.templates.prophet_template import ProphetTemplate
  from greykite.framework.utils.framework_testing_utils import check_forecast_pipeline_result
  from greykite.framework.utils.framework_testing_utils import mock_pipeline
  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.estimator.simple_silverkite_estimator import SimpleSilverkiteEstimator
  from greykite.sklearn.transform.column_selector import ColumnSelector
  from greykite.sklearn.transform.drop_degenerate_transformer import DropDegenerateTransformer
  from greykite.sklearn.transform.dtype_column_selector import DtypeColumnSelector
  from greykite.sklearn.transform.normalize_transformer import NormalizeTransformer
  from greykite.sklearn.transform.null_transformer import NullTransformer
  from greykite.sklearn.transform.pandas_feature_union import PandasFeatureUnion
  from greykite.sklearn.transform.zscore_outlier_transformer import ZscoreOutlierTransformer
label_desc: Use image node_id 5 for calling a global function with example usage: test_input(df, df_reg) without return types