def test_output_multi_series_hfc_lpo_false(self, config):
        """Tests backtest based on historical forecasts generated on multiple `series` with
        last_points_only=False.
        """
        is_univariate, metric = config
        is_multi_metric = len(metric) > 1
        y = ct(value=1.0, length=10)
        hfc = ct(value=2.0, length=10)
        if not is_univariate:
            y = y.stack(y + 1.0)
            hfc = hfc.stack(hfc + 2.0)
        hfc = [[y], [hfc]]
        y = [y, y]

        model = NaiveDrift()

        # check that input does not work with `last_points_only=False``
        with pytest.raises(ValueError) as err:
            _ = model.backtest(
                series=y,
                historical_forecasts=hfc,
                reduction=None,
                metric=metric,
                last_points_only=True,
            )
        error_msg = "Expected `historical_forecasts` of type `Sequence[TimeSeries]`"
        assert str(err.value).startswith(error_msg)

        # number of forecasts do not match number of `series`
        with pytest.raises(ValueError) as err:
            _ = model.backtest(
                series=y,
                historical_forecasts=hfc + [[y[0]]],
                reduction=None,
                metric=metric,
                last_points_only=False,
            )
        error_msg = f"expected `historical_forecasts` of type `Sequence[Sequence[TimeSeries]]` with length n={len(y)}."
        assert str(err.value).endswith(error_msg)

        # no reduction
        bt = model.backtest(
            series=y, historical_forecasts=hfc, reduction=None, metric=metric
        )
        assert isinstance(bt, list) and len(bt) == 2
        assert isinstance(bt[0], np.ndarray)
        assert isinstance(bt[1], np.ndarray)
        if not is_multi_metric:
            # inner shape expected: (n hist forecasts = 1,)
            np.testing.assert_array_almost_equal(bt[0], np.array([0.0]))
            np.testing.assert_array_almost_equal(bt[1], np.array([100.0]))
        else:
            # inner shape expected: (n metrics = 2, n hist forecasts = 1)
            np.testing.assert_array_almost_equal(bt[0], np.array([[0.0, 0.0]]))
            np.testing.assert_array_almost_equal(bt[1], np.array([[100.0, 100.0]]))

        # with reduction
        bt = model.backtest(
            series=y, historical_forecasts=hfc, reduction=np.mean, metric=metric
        )
        assert isinstance(bt, list) and len(bt) == 2
        if not is_multi_metric:
            # inner type expected: 1 float
            assert bt == [0.0, 100.0]
        else:
            # inner shape expected: (n metrics = 2,)
            assert isinstance(bt[0], np.ndarray)
            np.testing.assert_array_almost_equal(bt[0], np.array([0.0, 0.0]))
            assert isinstance(bt[1], np.ndarray)
            np.testing.assert_array_almost_equal(bt[1], np.array([100.0, 100.0]))
Tests backtest based on historical forecasts generated on multiple `series` with
        last_points_only=False.
        
darts/tests/models/forecasting/test_backtesting.py