code: def test_check_predict_input_ValueError_when_exog_is_dataframe_without_columns_in_exog_col_names():
      """
      Raise ValueError when there are missing columns in `exog`.
      """
      exog = pd.DataFrame(
          np.arange(10).reshape(5, 2), columns=["col1", "col2"]
      )
      exog_col_names = ["col1", "col3"]
  
      err_msg = re.escape(
          (
              f"Missing columns in `exog`. Expected {exog_col_names}. "
              f"Got {exog.columns.to_list()}."
          )
      )
      with pytest.raises(ValueError, match=err_msg):
          check_predict_input(
              forecaster_name="ForecasterAutoreg",
              steps=2,
              fitted=True,
              included_exog=True,
              index_type=pd.DatetimeIndex,
              index_freq="M",
              window_size=5,
              last_window=pd.Series(
                  np.arange(10),
                  index=pd.date_range(
                      start="1/1/2018", periods=10, freq="M"
                  ),
              ),
              last_window_exog=None,
              exog=exog,
              exog_type=pd.DataFrame,
              exog_col_names=exog_col_names,
              interval=None,
              alpha=None,
              max_steps=None,
              levels=None,
              series_col_names=None,
          )
  
imports: import re
  import pytest
  import numpy
  import pandas
  from sklearn.exceptions import NotFittedError
  from skforecast.utils import check_predict_input
  from skforecast.utils import check_exog
  from skforecast.utils import preprocess_exog
  from skforecast.utils import preprocess_last_window
  from skforecast.exceptions import MissingValuesExogWarning
label_desc: Use image node_id 21 for calling a global function with example usage: test_check_predict_input_ValueError_when_exog_is_dataframe_without_columns_in_exog_col_names() without return types