code: def test_oob_for_issue_29(self, d, cv, X):
      model = ARIMA(order=(2, d, 0), out_of_sample_size=cv).fit(
          self.dta, X=X
      )
  
      # If X is defined, we need to pass n_periods of
      # X rows to the predict function. Otherwise we'll
      # just leave it at None
      if X is not None:
          xr = X[:3, :]
      else:
          xr = None
  
      _, _ = model.predict(n_periods=3, return_conf_int=True, X=xr)
  
imports: import numpy
  import pandas
  from pmdarima.arima import ARIMA, auto_arima, AutoARIMA, ARMAtoMA
  from pmdarima.arima import _validation
  from pmdarima.compat.pytest import pytest_error_str
  from pmdarima.datasets import load_lynx, load_wineind, load_heartrate
  from numpy.random import RandomState
  from numpy.testing import assert_array_almost_equal, assert_almost_equal, assert_allclose
  from statsmodels import api
  from sklearn.metrics import mean_squared_error
  import datetime
  import joblib
  import os
  import pickle
  import pytest
  import tempfile
  import time
label_desc: Use image node_id 1 for calling the TestIssue29 obj's underlying member method code with example usage: obj.test_oob_for_issue_29(d, cv, X) without return types