skip_if_no_umap_learn <- function() {
if (!reticulate::py_module_available("umap") &&
Sys.getenv("BNET_FORCE_UMAP_TESTS") != 1)
skip("umap-learn not available, install with `pip install umap-learn==0.4`")
}
test_that("UMAP python", {
if (!requireNamespace("umap", quietly = TRUE)) {
skip("umap not available")
}
skip_if_no_umap_learn()
res1 <- embed(iris[1:4], "UMAP", .mute = c("message", "output"))
res2 <- embed(iris[1:4], "UMAP", .mute = c("message", "output"), knn = 20)
expect_s4_class(res1, "dimRedResult")
expect_equal(res1@method, "UMAP")
expect_equal(res1@pars$d, "euclidean")
expect_equal(res1@pars$knn, 15)
expect_equal(res1@pars$method, "umap-learn")
expect_equal(res1@pars$ndim, 2)
expect_s4_class(res2, "dimRedResult")
expect_equal(res2@method, "UMAP")
expect_equal(res2@pars$d, "euclidean")
expect_equal(res2@pars$knn, 20)
expect_equal(res2@pars$method, "umap-learn")
expect_equal(res2@pars$ndim, 2)
expect_true(any(res1@data@data != res2@data@data))
pred1 <- predict(res1, iris[1:4])
pred2 <- predict(res2, iris[1:4])
expect_equal(dim(pred1@data), dim(res1@data@data))
expect_equal(dim(pred2@data), dim(res2@data@data))
})
test_that("UMAP R", {
if (!requireNamespace("umap", quietly = TRUE)) {
skip("umap not available")
}
res1 <- embed(iris[1:4], "UMAP", method = "naive", .mute = c("message", "output"))
res2 <- embed(iris[1:4], "UMAP", method = "naive", .mute = c("message", "output"), knn = 20)
expect_s4_class(res1, "dimRedResult")
expect_equal(res1@method, "UMAP")
expect_equal(res1@pars$d, "euclidean")
expect_equal(res1@pars$knn, 15)
expect_equal(res1@pars$method, "naive")
expect_equal(res1@pars$ndim, 2)
expect_s4_class(res2, "dimRedResult")
expect_equal(res2@method, "UMAP")
expect_equal(res2@pars$d, "euclidean")
expect_equal(res2@pars$knn, 20)
expect_equal(res2@pars$method, "naive")
expect_equal(res2@pars$ndim, 2)
expect_true(any(res1@data@data != res2@data@data))
pred1 <- predict(res1, iris[1:4])
pred2 <- predict(res2, iris[1:4])
expect_equal(dim(pred1@data), dim(res1@data@data))
expect_equal(dim(pred2@data), dim(res2@data@data))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.