data(hgsc) hgsc <- hgsc[1:40, 1:30] test_that("No algorithms means all algorithms, output is an array", { skip_if_not_installed("apcluster") skip_if_not_installed("cluster") skip_if_not_installed("dbscan") skip_if_not_installed("e1071") skip_if_not_installed("kernlab") skip_if_not_installed("kohonen") skip_if_not_installed("mixedClust") x1 <- consensus_cluster(hgsc, nk = 4, reps = 1, progress = FALSE) expect_error(x1, NA) expect_is(x1, "array") }) test_that("Output can be saved with or without time in file name", { x1 <- consensus_cluster(hgsc, nk = 2:4, reps = 5, algorithms = "hc", progress = FALSE, file.name = "CCOutput") x2 <- consensus_cluster(hgsc, nk = 2:4, reps = 5, algorithms = "hc", progress = FALSE, file.name = "CCOutput", time.saved = TRUE) expect_identical(x1, x2) file.remove(list.files(pattern = "CCOutput")) }) test_that("Progress bar increments across entire function call", { skip_if_not_installed("apcluster") assign("my_dist", function(x) stats::dist(x, method = "manhattan"), pos = 1) x3 <- consensus_cluster(hgsc, nk = 2, reps = 5, algorithms = c("nmf", "hc", "ap"), distance = c("spear", "my_dist"), nmf.method = "lee", progress = TRUE) expect_error(x3, NA) }) test_that("Able to call only spearman distance", { x4a <- consensus_cluster(hgsc, nk = 2, reps = 5, algorithms = "hc", distance = "spear") expect_error(x4a, NA) x4b <- consensus_cluster(hgsc, nk = 2, reps = 5, algorithms = "hc", distance = "spear", abs = FALSE) expect_error(x4b, NA) }) test_that("Data preparation on bootstrap samples works", { skip_if_not_installed("apcluster") x5 <- consensus_cluster(hgsc, nk = 3, reps = 3, algorithms = c("nmf", "hc", "ap"), nmf.method = "lee", prep.data = "sampled") expect_error(x5, NA) }) test_that("no scaling means only choose complete cases and high signal vars", { x6 <- consensus_cluster(hgsc, nk = 2, reps = 2, algorithms = "hc", scale = FALSE) expect_error(x6, NA) }) test_that("t-SNE dimension reduction works", { x7 <- consensus_cluster(hgsc, nk = 4, reps = 1, algorithms = c("hc", "km"), type = "tsne") expect_error(x7, NA) }) test_that("Able to call Pearson distance", { x8 <- consensus_cluster(hgsc, nk = 2, reps = 5, algorithms = "hc", distance = "pearson") expect_error(x8, NA) })