code: def test_output_backtesting_forecaster_interval_yes_exog_not_allow_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', allow_incomplete_fold = False
      """
      y_with_index = y.copy()
      y_with_index.index = pd.date_range(
          start="2022-01-01", periods=50, freq="D"
      )
      exog_with_index = exog.copy()
      exog_with_index.index = pd.date_range(
          start="2022-01-01", periods=50, freq="D"
      )
  
      expected_metric = 0.08826806818628832
      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],
              ]
          ),
          columns=["pred", "lower_bound", "upper_bound"],
          index=pd.date_range(start="2022-02-03", periods=15, freq="D"),
      )
  
      forecaster = ForecasterAutoregDirect(
          regressor=LinearRegression(), lags=3, steps=8
      )
  
      metric, backtest_predictions = _backtesting_forecaster(
          forecaster=forecaster,
          y=y_with_index,
          exog=exog_with_index,
          refit=False,
          initial_train_size=len(y_with_index) - 20,
          gap=3,
          allow_incomplete_fold=False,
          steps=5,
          metric="mean_squared_error",
          interval=[5, 95],
          n_boot=500,
          random_state=123,
          in_sample_residuals=True,
          verbose=False,
      )
      backtest_predictions = backtest_predictions.asfreq("D")
  
      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 18 for calling a global function with example usage: test_output_backtesting_forecaster_interval_yes_exog_not_allow_remainder_gap_with_mocked() without return types