def test_backtest_and_residuals(self, quantiles):
        """Residuals and backtest are already tested for quantile, and interval metrics based on stochastic or quantile
        forecasts. So, a simple check that they give expected results should be enough.
        """
        n_q = len(quantiles)
        half_idx = n_q // 2
        q_interval = [
            (q_lo, q_hi)
            for q_lo, q_hi in zip(quantiles[:half_idx], quantiles[half_idx + 1 :][::-1])
        ]
        lpo = False

        # series long enough for 2 hfcs
        series = self.helper_prepare_series(True, True).append_values([0.1])
        # conformal model
        model = ConformalNaiveModel(model=train_model(series), quantiles=quantiles)

        hfc = model.historical_forecasts(
            series=series, forecast_horizon=5, last_points_only=lpo, **pred_lklp
        )
        bt = model.backtest(
            series=series,
            historical_forecasts=hfc,
            last_points_only=lpo,
            metric=mic,
            metric_kwargs={"q_interval": model.q_interval},
        )
        # default backtest is equal to backtest with metric kwargs
        np.testing.assert_array_almost_equal(
            bt,
            model.backtest(
                series=series,
                historical_forecasts=hfc,
                last_points_only=lpo,
                metric=mic,
                metric_kwargs={"q_interval": q_interval},
            ),
        )
        np.testing.assert_array_almost_equal(
            mic(
                [series] * len(hfc),
                hfc,
                q_interval=q_interval,
                series_reduction=np.mean,
            ),
            bt,
        )

        residuals = model.residuals(
            series=series,
            historical_forecasts=hfc,
            last_points_only=lpo,
            metric=ic,
            metric_kwargs={"q_interval": q_interval},
        )
        # default residuals is equal to residuals with metric kwargs
        assert residuals == model.residuals(
            series=series,
            historical_forecasts=hfc,
            last_points_only=lpo,
            metric=ic,
            metric_kwargs={"q_interval": q_interval},
        )
        expected_vals = ic([series] * len(hfc), hfc, q_interval=q_interval)
        expected_residuals = []
        for vals, hfc_ in zip(expected_vals, hfc):
            expected_residuals.append(
                TimeSeries.from_times_and_values(
                    times=hfc_.time_index,
                    values=vals,
                    columns=likelihood_component_names(
                        series.components, quantile_interval_names(q_interval)
                    ),
                )
            )
        assert residuals == expected_residuals
Residuals and backtest are already tested for quantile, and interval metrics based on stochastic or quantile
        forecasts. So, a simple check that they give expected results should be enough.
        
darts/tests/models/forecasting/test_conformal_model.py