def test_feature_times_training(self, config):
        """
        Tests that `_get_feature_times` produces the same `times` output as
        that generated by using the various `get_feature_times_*` helper
        functions defined in this module when `is_training = True`. Consistency
        is checked over all of the combinations of parameter values specified by
        `self.target_lag_combos`, `self.lags_past_combos`, `self.lags_future_combos`
        and `self.max_samples_per_ts_combos`. This particular test uses timeseries
        with range time indices.
        """
        # Define timeseries with different starting points, lengths, and frequencies:
        series_type, output_chunk_shift = config
        if series_type == "integer":
            target = linear_timeseries(start=1, length=20, freq=1)
            past = linear_timeseries(start=2, length=25, freq=2)
            future = linear_timeseries(start=3, length=30, freq=3)
        else:
            target = linear_timeseries(
                start=pd.Timestamp("1/1/2000"), length=20, freq="1d"
            )
            past = linear_timeseries(
                start=pd.Timestamp("1/2/2000"), length=25, freq="2d"
            )
            future = linear_timeseries(
                start=pd.Timestamp("1/3/2000"), length=30, freq="3d"
            )
        for lags, lags_past, lags_future, ocl in product(
            self.target_lag_combos,
            self.lags_past_combos,
            self.lags_future_combos,
            self.ocl_combos,
        ):
            feature_times = _get_feature_times(
                target_series=target,
                past_covariates=past,
                future_covariates=future,
                lags=lags,
                lags_past_covariates=lags_past,
                lags_future_covariates=lags_future,
                output_chunk_length=ocl,
                is_training=True,
                output_chunk_shift=output_chunk_shift,
            )
            target_expected = self.get_feature_times_target_training(
                target, lags, ocl, output_chunk_shift=output_chunk_shift
            )
            past_expected = self.get_feature_times_past(past, lags_past)
            future_expected = self.get_feature_times_future(future, lags_future)
            assert target_expected.equals(feature_times[0])
            assert past_expected.equals(feature_times[1])
            assert future_expected.equals(feature_times[2])

        Tests that `_get_feature_times` produces the same `times` output as
        that generated by using the various `get_feature_times_*` helper
        functions defined in this module when `is_training = True`. Consistency
        is checked over all of the combinations of parameter values specified by
        `self.target_lag_combos`, `self.lags_past_combos`, `self.lags_future_combos`
        and `self.max_samples_per_ts_combos`. This particular test uses timeseries
        with range time indices.
        
darts/tests/utils/tabularization/test_get_feature_times.py