code: def test_output_backtesting_forecaster_interval_yes_exog_not_allow_remainder_gap_with_mocked():
      """
      Test output of _backtesting_forecaster_no_refit 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.09133694038363274
      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.50952084, 0.17367515, 0.96199755],
                  [0.52131987, 0.19133495, 0.77700048],
                  [0.50289964, 0.261816, 0.89080844],
                  [0.54941988, 0.2254731, 0.81990615],
                  [0.51121195, 0.23007235, 0.76212766],
                  [0.25123452, -0.02303138, 0.68451499],
                  [0.2791409, 0.05980179, 0.67369153],
                  [0.28390161, 0.0752468, 0.58609101],
                  [0.38317935, 0.0929118, 0.70099806],
                  [0.42183128, 0.10993796, 0.69111769],
              ]
          ),
          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=True,
          initial_train_size=len(y_with_index) - 20,
          fixed_train_size=True,
          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.linear_model import Ridge
  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 21 for calling a global function with example usage: test_output_backtesting_forecaster_interval_yes_exog_not_allow_remainder_gap_with_mocked() without return types