code: def test_fit_and_predict(df, uncertainty_dict):
      uncertainty_dict["params"]["conditional_cols"] = ["dow"]
      uncertainty_dict["params"]["residual_col"] = "residual_col"
      model = SimpleConditionalResidualsModel(
          uncertainty_dict=uncertainty_dict,
          coverage=0.99,
          time_col=TIME_COL,
      )
  
      # fit
      model.fit(train_df=df)
      assert model.uncertainty_model is not None
  
      # predict
      pred = model.predict(fut_df=df)
      assert PREDICTED_LOWER_COL in pred.columns
      assert PREDICTED_UPPER_COL in pred.columns
      assert (
          (pred[PREDICTED_LOWER_COL] + pred[PREDICTED_UPPER_COL])
          .round(2)
          .equals((pred[PREDICTED_COL] * 2).round(2))
      )
      # Conditioning on ``dow``.
      assert (
          pred[PREDICTED_UPPER_COL].iloc[-1]
          - pred[PREDICTED_LOWER_COL].iloc[-1]
          != pred[PREDICTED_UPPER_COL].iloc[-2]
          - pred[PREDICTED_LOWER_COL].iloc[-2]
      )
  
      # ``value_col`` not in ``fut_df``.
      with pytest.raises(
          UncertaintyError,
          match=f"The offset column forecast is not found in `fut_df`.",
      ):
          model.predict(fut_df=df[[TIME_COL]])
  
file_path: greykite/greykite/tests/sklearn/uncertainty/test_simple_conditional_residuals_model.py
imports: from copy import deepcopy
  import numpy
  import pandas
  import pytest
  from greykite.common.constants import PREDICTED_COL
  from greykite.common.constants import PREDICTED_LOWER_COL
  from greykite.common.constants import PREDICTED_UPPER_COL
  from greykite.common.constants import TIME_COL
  from greykite.common.constants import VALUE_COL
  from greykite.sklearn.uncertainty.exceptions import UncertaintyError
  from greykite.sklearn.uncertainty.simple_conditional_residuals_model import SimpleConditionalResidualsModel
  from greykite.sklearn.uncertainty.uncertainty_methods import UncertaintyMethodEnum
label_desc: Use image node_id 5 for calling a global function with example usage: test_fit_and_predict(df, uncertainty_dict) without return types