def METHOD_NAME(
    nrows, ncols, n_components, density, batch_size_divider, whiten
):
    X, _ = make_blobs(n_samples=nrows, n_features=ncols, random_state=10)
    cu_ipca = cuIPCA(n_components=n_components, whiten=whiten)
    sample_size = int(nrows / batch_size_divider)
    for i in range(0, nrows, sample_size):
        cu_ipca.partial_fit(X[i : i + sample_size].copy())
    cu_t = cu_ipca.transform(X)
    cu_inv = cu_ipca.inverse_transform(cu_t)
    sk_ipca = skIPCA(n_components=n_components, whiten=whiten)
    X = cp.asnumpy(X)
    for i in range(0, nrows, sample_size):
        sk_ipca.partial_fit(X[i : i + sample_size].copy())
    sk_t = sk_ipca.transform(X)
    sk_inv = sk_ipca.inverse_transform(sk_t)
    assert array_equal(cu_inv, sk_inv, 5e-5, with_sign=True)