def test_feature_times_output_chunk_length_output_chunk_shift(self, config):
        """
        Tests that the last feature time for the `target_series`
        returned by `_get_feature_times` corresponds to
        `output_chunk_length - output_chunk_shift - 1` timesteps *before* the end of
        the target series; this is the last time point in
        `target_series` which has enough values in front of it
        to create a label. This particular test uses range time
        index series to check this behaviour.
        """
        series_type, output_chunk_shift = config
        if series_type == "integer":
            target = linear_timeseries(start=0, length=20, freq=2)
        else:
            target = linear_timeseries(
                start=pd.Timestamp("1/1/2000"), length=20, freq="2d"
            )
        # Test multiple `output_chunk_length` values:
        for ocl in (1, 2, 3, 4, 5):
            feature_times = _get_feature_times(
                target_series=target,
                lags=[-2, -3, -5],
                output_chunk_length=ocl,
                is_training=True,
                output_chunk_shift=output_chunk_shift,
            )
            assert feature_times[0][-1] == target.end_time() - target.freq * (
                ocl + output_chunk_shift - 1
            )

        Tests that the last feature time for the `target_series`
        returned by `_get_feature_times` corresponds to
        `output_chunk_length - output_chunk_shift - 1` timesteps *before* the end of
        the target series; this is the last time point in
        `target_series` which has enough values in front of it
        to create a label. This particular test uses range time
        index series to check this behaviour.
        
darts/tests/utils/tabularization/test_get_feature_times.py