code: def test_subset_columns(df):
      """Tests if intervals and null prediction are truly optional,
      and relative_error_tolerance parameter"""
      forecast = UnivariateForecast(
          df[[cst.TIME_COL, cst.ACTUAL_COL, cst.PREDICTED_COL]],
          predicted_lower_col=None,
          predicted_upper_col=None,
          null_model_predicted_col=None,
          train_end_date=datetime.datetime(2018, 1, 2),
          relative_error_tolerance=0.7,
      )
  
      forecast_full = UnivariateForecast(
          df, train_end_date=datetime.datetime(2018, 1, 2)
      )
  
      for enum in EvaluationMetricEnum:
          assert (
              forecast.train_evaluation[enum.get_metric_name()]
              == forecast_full.train_evaluation[enum.get_metric_name()]
          )
          assert (
              forecast.test_evaluation[enum.get_metric_name()]
              == forecast_full.test_evaluation[enum.get_metric_name()]
          )
      for metric in [
          cst.R2_null_model_score,
          cst.PREDICTION_BAND_WIDTH,
          cst.PREDICTION_BAND_COVERAGE,
          cst.LOWER_BAND_COVERAGE,
          cst.UPPER_BAND_COVERAGE,
          cst.COVERAGE_VS_INTENDED_DIFF,
      ]:
          assert forecast.train_evaluation[metric] is None
          assert forecast.test_evaluation[metric] is None
  
      assert forecast.relative_error_tolerance == 0.7
      assert (
          forecast.train_evaluation[cst.FRACTION_OUTSIDE_TOLERANCE]
          == 0.5
      )
      assert (
          forecast.test_evaluation[cst.FRACTION_OUTSIDE_TOLERANCE]
          == 0.0
      )
  
imports: import datetime
  import math
  import sys
  from functools import partial
  import numpy
  import pandas
  import pytest
  from pandas.testing import assert_frame_equal
  from pandas.testing import assert_series_equal
  from sklearn.pipeline import Pipeline
  from greykite.common import constants
  from greykite.common.evaluation import ElementwiseEvaluationMetricEnum
  from greykite.common.evaluation import EvaluationMetricEnum
  from greykite.common.python_utils import assert_equal
  from greykite.common.testing_utils import gen_sliced_df
  from greykite.framework.input.univariate_time_series import UnivariateTimeSeries
  from greykite.framework.output.univariate_forecast import UnivariateForecast
  from greykite.framework.pipeline.utils import get_forecast
  from greykite.sklearn.estimator.prophet_estimator import ProphetEstimator
  from greykite.sklearn.estimator.silverkite_estimator import SilverkiteEstimator
  from greykite.sklearn.estimator.testing_utils import params_component_breakdowns
label_desc: Use image node_id 5 for calling a global function with example usage: test_subset_columns(df) without return types