data(hgsc) dat <- hgsc[1:40, 1:30] k <- 4 x <- consensus_cluster(dat, nk = k, reps = 4, progress = FALSE, algorithms = c("nmf", "hc", "diana"), nmf.method = "lee") x_imputed <- impute_missing(x, dat, nk = k) skip_if_not_installed("poLCA") test_that("majority voting works", { dt <- array(c(2, 3, 2, 2, 2, 3, 1, 1, 2, 3, 2, 2, 2, 3, 1, 1), c(2, 4, 2)) expect_equal(majority_voting(dt, is.relabelled = TRUE), c(2, 3)) }) test_that("k modes works with or without missing", { x <- array(rep(c(rep(1, 10), rep(2, 10), rep(3, 10)), times = 5), c(30, 6, 5)) xf <- x dim(xf) <- c(30, 30) set.seed(1) kmo.old <- klaR::kmodes(xf, 3)$cluster kmo.new <- k_modes(x) expect_equal(kmo.old, kmo.new) x[3, , 1] <- NA kmo.missing <- k_modes(x) expect_false(anyNA(kmo.missing)) }) test_that("k modes only clusters if there are multiple assignment vectors", { set.seed(1) E <- matrix(sample(seq_len(6), 100, replace = TRUE), ncol = 1) expect_equal(E, unname(as.matrix(k_modes(E)))) }) test_that("CSPA works", { expect_length(CSPA(x, k = 4), nrow(x)) expect_equal(dplyr::n_distinct(CSPA(x, k = 4)), 4) }) test_that("Check LCE with hgsc data with 3 consensus_cluster algorithms", { y_cts <- LCE(E = x_imputed, k = k, R = 5, sim.mat = "cts") y_srs <- LCE(E = x_imputed, k = k, R = 5, sim.mat = "srs") y_asrs <- LCE(E = x_imputed, k = k, R = 5, sim.mat = "asrs") expect_length(y_cts, 40) expect_length(y_srs, 40) expect_length(y_asrs, 40) expect_is(y_cts, "integer") expect_is(y_srs, "integer") expect_is(y_asrs, "integer") }) test_that("Check LCA works", { expect_length(LCA(x_imputed), nrow(x)) expect_equal(dplyr::n_distinct(LCA(x_imputed)), 4) })