def train_test_split(X, y, test_size=0.5, shuffle=True, seed=None):
    if shuffle:
        (X, y) = shuffle_data(X, y, seed)
    split_i = (len(y) - int((len(y) // (1 / test_size))))
    (x_train, x_test) = (X[:split_i], X[split_i:])
    (y_train, y_test) = (y[:split_i], y[split_i:])
    return (x_train, x_test, y_train, y_test)
def train_test_split(X, y, test_size=0.5, shuffle=True, seed=None):
    if shuffle:
        (X, y) = shuffle_data(X, y, seed)
    split_i = (len(y) - int((len(y) // (1 / test_size))))
    (x_train, x_test) = (X[:split_i], X[split_i:])
    (y_train, y_test) = (y[:split_i], y[split_i:])
    return (x_train, x_test, y_train, y_test)