def METHOD_NAME(readcsv=read_csv, method="defaultDense"):
    nClasses = 2
    nFeatures = 20
    # read training data from file with 20 features per observation and 1 class label
    trainfile = os.path.join("..", "data", "batch", "binary_cls_train.csv")
    train_data = readcsv(trainfile, range(nFeatures), t=np.float32)
    train_labels = readcsv(trainfile, range(nFeatures, nFeatures + 1), t=np.float32)
    # read testing data from file with 20 features per observation
    testfile = os.path.join("..", "data", "batch", "binary_cls_test.csv")
    predict_data = readcsv(testfile, range(nFeatures), t=np.float32)
    predict_labels = readcsv(testfile, range(nFeatures, nFeatures + 1), t=np.float32)
    # Using of the classic way (computations on CPU)
    result_classic, train_result = compute(
        train_data, train_labels, predict_data, nClasses
    )
    train_data = to_numpy(train_data)
    train_labels = to_numpy(train_labels)
    predict_data = to_numpy(predict_data)
    # It is possible to specify to make the computations on GPU
    if gpu_available:
        with sycl_context("gpu"):
            sycl_train_data = sycl_buffer(train_data)
            sycl_train_labels = sycl_buffer(train_labels)
            sycl_predict_data = sycl_buffer(predict_data)
            result_gpu, _ = compute(
                sycl_train_data, sycl_train_labels, sycl_predict_data, nClasses
            )
        # TODO: When LogisticRegression run2run instability will be replace on np.equal
        assert np.mean(result_classic.prediction != result_gpu.prediction) < 0.2
    # It is possible to specify to make the computations on GPU
    with sycl_context("cpu"):
        sycl_train_data = sycl_buffer(train_data)
        sycl_train_labels = sycl_buffer(train_labels)
        sycl_predict_data = sycl_buffer(predict_data)
        result_cpu, _ = compute(
            sycl_train_data, sycl_train_labels, sycl_predict_data, nClasses
        )
    # the prediction result provides prediction
    assert result_classic.prediction.shape == (
        predict_data.shape[0],
        train_labels.shape[1],
    )
    # TODO: When LogisticRegression run2run instability will be replace on np.equal
    assert np.mean(result_classic.prediction != result_cpu.prediction) < 0.2
    return (train_result, result_classic, predict_labels)