code: def test_output_backtesting_forecaster_interval_yes_exog_yes_remainder_gap_with_mocked():
      """
      Test output of _backtesting_forecaster with backtesting mocked, interval yes.
      Regressor is LinearRegression with lags=3, Series y is mocked, exog is mocked,
      20 observations to backtest, steps=5 and gap=3, metric='mean_squared_error',
      'in_sample_residuals = True'
      """
      expected_metric = 0.07965887934114284
      expected_predictions = pd.DataFrame(
          data=np.array(
              [
                  [0.65022999, 0.27183154, 1.06503914],
                  [0.52364637, 0.19453326, 0.923044],
                  [0.46809256, 0.12440678, 0.75395058],
                  [0.48759732, 0.12107577, 0.83145059],
                  [0.47172445, 0.14533367, 0.74697552],
                  [0.57585845, 0.19746, 0.99066759],
                  [0.53592933, 0.20681622, 0.93532696],
                  [0.48995122, 0.14626544, 0.77580924],
                  [0.45271317, 0.08619163, 0.79656645],
                  [0.49519413, 0.16880335, 0.7704452],
                  [0.27167824, -0.10672021, 0.68648739],
                  [0.27813822, -0.05097489, 0.67753585],
                  [0.31569424, -0.02799154, 0.60155226],
                  [0.3983224, 0.03180086, 0.74217568],
                  [0.34822681, 0.02183603, 0.62347788],
                  [0.62098686, 0.24258841, 1.035796],
                  [0.47190757, 0.14279445, 0.87130519],
              ]
          ),
          columns=["pred", "lower_bound", "upper_bound"],
          index=pd.RangeIndex(start=33, stop=50, step=1),
      )
  
      forecaster = ForecasterAutoregDirect(
          regressor=LinearRegression(), lags=3, steps=8
      )
  
      n_backtest = 20
      y_train = y[:-n_backtest]
  
      metric, backtest_predictions = _backtesting_forecaster(
          forecaster=forecaster,
          y=y,
          exog=exog,
          refit=False,
          initial_train_size=len(y_train),
          gap=3,
          allow_incomplete_fold=True,
          steps=5,
          metric="mean_squared_error",
          interval=[5, 95],
          n_boot=500,
          random_state=123,
          in_sample_residuals=True,
          verbose=False,
      )
  
      assert expected_metric == approx(metric)
      pd.testing.assert_frame_equal(
          expected_predictions, backtest_predictions
      )
  
imports: import pytest
  import numpy
  import pandas
  from pytest import approx
  from sklearn.linear_model import LinearRegression
  from sklearn.metrics import mean_squared_error
  from skforecast.ForecasterAutoreg import ForecasterAutoreg
  from skforecast.ForecasterAutoregCustom import ForecasterAutoregCustom
  from skforecast.ForecasterAutoregDirect import ForecasterAutoregDirect
  from skforecast.model_selection.model_selection import _backtesting_forecaster
  from .fixtures_model_selection import y
  from .fixtures_model_selection import exog
  from .fixtures_model_selection import out_sample_residuals
label_desc: Use image node_id 17 for calling a global function with example usage: test_output_backtesting_forecaster_interval_yes_exog_yes_remainder_gap_with_mocked() without return types