#Подготовка данных
def preprocess_test_data(df, scaler, input_length, forecast_length, isseparate=False):
    df_temp = transform_dataframe(df.copy())
    data_test = df_temp.iloc[:,:5]  # Univariate

    scaled_data_test = scaler.transform(data_test)
    X_test, y_test = create_sequences(scaled_data_test, input_length, forecast_length, isseparate=isseparate)
    
    return X_test, y_test

# #Получение прогнозов, обратное масштабирование для univariate
# def test_evaluate(model, X_test, y_test, scaler):
#     forecasts = model.predict(X_test)
    
#     inverse_forecasts = [scaler.inverse_transform(f.reshape(-1, 1)).flatten() for f in forecasts]
#     inverse_y_test = [scaler.inverse_transform(y.reshape(-1, 1)).flatten() for y in y_test]

#     return inverse_forecasts, inverse_y_test

# #Получение прогнозов для multivariate
def test_evaluate(model, X_test, y_test, scaler):
    # Predict
    forecasts = model.predict(X_test)

    # Inverse transform forecasts and true values for the first index
    inverse_forecasts = []
    for forecast in forecasts:
        inverse_forecast = scaler.inverse_transform(forecast)
        forecast_first_value = inverse_forecast[:, 0].reshape(-1, 1)
        inverse_forecasts.append(forecast_first_value)

    inverse_y_test = []
    for true_value in y_test:
        inverse_true_value = scaler.inverse_transform(true_value)
        true_first_value = inverse_true_value[:, 0].reshape(-1, 1)
        inverse_y_test.append(true_first_value)

    return inverse_forecasts, inverse_y_test

#Оценка метрики RMSE
def evaluate_metrics(forecasts, y_test_inv):
    rmse_metrics = []
    
    for forecast, true_value in zip(forecasts, y_test_inv):
        rmse = np.sqrt(mean_squared_error(true_value, forecast))
        rmse_metrics.append(rmse)

    return np.mean(rmse_metrics)


#Подготовка данных
def preprocess_test_data(df, scaler, input_length, forecast_length, isseparate=False):
    df_temp = transform_dataframe(df.copy())
    data_test = df_temp.iloc[:,:5]  # Univariate

    scaled_data_test = scaler.transform(data_test)
    X_test, y_test = create_sequences(scaled_data_test, input_length, forecast_length, isseparate=isseparate)
    
    return X_test, y_test

# #Получение прогнозов, обратное масштабирование для univariate
# def test_evaluate(model, X_test, y_test, scaler):
#     forecasts = model.predict(X_test)
    
#     inverse_forecasts = [scaler.inverse_transform(f.reshape(-1, 1)).flatten() for f in forecasts]
#     inverse_y_test = [scaler.inverse_transform(y.reshape(-1, 1)).flatten() for y in y_test]

#     return inverse_forecasts, inverse_y_test

# #Получение прогнозов для multivariate
def test_evaluate(model, X_test, y_test, scaler):
    # Predict
    forecasts = model.predict(X_test)

    # Inverse transform forecasts and true values for the first index
    inverse_forecasts = []
    for forecast in forecasts:
        inverse_forecast = scaler.inverse_transform(forecast)
        forecast_first_value = inverse_forecast[:, 0].reshape(-1, 1)
        inverse_forecasts.append(forecast_first_value)

    inverse_y_test = []
    for true_value in y_test:
        inverse_true_value = scaler.inverse_transform(true_value)
        true_first_value = inverse_true_value[:, 0].reshape(-1, 1)
        inverse_y_test.append(true_first_value)

    return inverse_forecasts, inverse_y_test

#Оценка метрики RMSE
def evaluate_metrics(forecasts, y_test_inv):
    rmse_metrics = []
    
    for forecast, true_value in zip(forecasts, y_test_inv):
        rmse = np.sqrt(mean_squared_error(true_value, forecast))
        rmse_metrics.append(rmse)

    return np.mean(rmse_metrics)


df_ = transform_dataframe(df_test.copy())
plot(2028, df_, X_test)

what's wrong?