def helper_generate_multivariate_case_data(self, season_length, n_repeat):
        """generates multivariate test case data. Target series is a sine wave stacked with a repeating
        linear curve of equal seasonal length. Covariates are datetime attributes for 'hours'.
        """

        # generate sine wave
        ts_sine = tg.sine_timeseries(
            value_frequency=1 / season_length,
            length=n_repeat * season_length,
            freq="h",
        )

        # generate repeating linear curve
        ts_linear = tg.linear_timeseries(
            0, 1, length=season_length, start=ts_sine.end_time() + ts_sine.freq
        )
        for i in range(n_repeat - 1):
            start = ts_linear.end_time() + ts_linear.freq
            new_ts = tg.linear_timeseries(0, 1, length=season_length, start=start)
            ts_linear = ts_linear.append(new_ts)
        ts_linear = TimeSeries.from_times_and_values(
            times=ts_sine.time_index, values=ts_linear.values()
        )

        # create multivariate TimeSeries by stacking sine and linear curves
        ts = ts_sine.stack(ts_linear)

        # create train/test sets
        val_length = 10 * season_length
        ts_train, ts_val = ts[:-val_length], ts[-val_length:]

        # scale data
        scaler_ts = Scaler()
        ts_train_scaled = scaler_ts.fit_transform(ts_train)
        ts_val_scaled = scaler_ts.transform(ts_val)
        ts_scaled = scaler_ts.transform(ts)

        # generate long enough covariates (past and future covariates will be the same for simplicity)
        long_enough_ts = tg.sine_timeseries(
            value_frequency=1 / season_length, length=1000, freq=ts.freq
        )
        covariates = tg.datetime_attribute_timeseries(long_enough_ts, attribute="hour")
        scaler_covs = Scaler()
        covariates_scaled = scaler_covs.fit_transform(covariates)
        return ts_scaled, ts_train_scaled, ts_val_scaled, covariates_scaled
generates multivariate test case data. Target series is a sine wave stacked with a repeating
        linear curve of equal seasonal length. Covariates are datetime attributes for 'hours'.
        
darts/tests/models/forecasting/test_TFT.py