code: def test_prediction_exceptions(data, fixed, use_numpy):
      y, x, z, order, _ = _convert_to_numpy(
          data, None, 3, False, use_numpy
      )
      res = ARDL(y, 2, x, 3, causal=False).fit()
      with pytest.raises(ValueError, match="exog_oos must be"):
          res.forecast(1)
      if isinstance(x, pd.DataFrame):
          exog_oos = np.asarray(data.x)[:12]
          with pytest.raises(
              TypeError, match="exog_oos must be a DataFrame when"
          ):
              res.forecast(12, exog=exog_oos)
          with pytest.raises(
              ValueError, match="must have the same columns"
          ):
              res.forecast(12, exog=data.x.iloc[:12, :1])
  
imports: from typing import NamedTuple
  import numpy
  from numpy.testing import assert_allclose
  import pandas
  from pandas.testing import assert_index_equal
  import pytest
  from statsmodels.datasets import danish_data
  from statsmodels.iolib.summary import Summary
  from statsmodels.tools.sm_exceptions import SpecificationWarning
  from statsmodels.tsa.ar_model import AutoReg
  from statsmodels.tsa.ardl.model import ARDL, UECM, ARDLResults, ardl_select_order
  from statsmodels.tsa.deterministic import DeterministicProcess
label_desc: Use image node_id 37 for calling a global function with example usage: test_prediction_exceptions(data, fixed, use_numpy) without return types