Nothing
test_that("distribution_plot runs on a matrix with default args", {
set.seed(1L)
states <- c("A", "B", "C")
seqs <- matrix(sample(states, 30 * 8, replace = TRUE), 30, 8)
pdf(NULL); on.exit(dev.off(), add = TRUE)
res <- distribution_plot(seqs, na = FALSE)
expect_type(res, "list")
expect_named(res, c("counts", "proportions", "levels", "palette", "groups"))
expect_equal(res$levels, sort(states))
# Column sums of proportions == 1 in every group.
expect_true(all(abs(colSums(res$proportions[[1]]) - 1) < 1e-10))
})
test_that("distribution_plot 'count' scale preserves raw counts", {
seqs <- matrix(c("A", "A", "B", "B", "A", "C"), nrow = 3)
pdf(NULL); on.exit(dev.off(), add = TRUE)
res <- distribution_plot(seqs, scale = "count", na = FALSE)
# Column 1: all "A" except row 2 is "A" too (wait it's a 3x2 matrix)
# Actually: matrix fills by column; seqs[,1] = c("A","A","B"), seqs[,2] = c("B","A","C")
expect_equal(res$counts[[1]][, 1],
c(A = 2, B = 1, C = 0), ignore_attr = TRUE)
expect_equal(res$counts[[1]][, 2],
c(A = 1, B = 1, C = 1), ignore_attr = TRUE)
})
test_that("distribution_plot accepts net_clustering and draws per-group panels", {
set.seed(2L)
seqs <- as.data.frame(matrix(sample(c("A", "B", "C", "D"), 40 * 10,
replace = TRUE), 40, 10))
cl <- build_clusters(seqs, k = 3L, dissimilarity = "hamming",
method = "ward.D2")
pdf(NULL); on.exit(dev.off(), add = TRUE)
res <- distribution_plot(cl)
expect_length(res$groups, 3L)
expect_length(res$counts, 3L)
# Each per-group count matrix sums to the cluster size × n_time.
group_sizes <- table(cl$assignments)
for (g in seq_along(res$counts)) {
expect_equal(sum(res$counts[[g]]), as.integer(group_sizes[g]) * ncol(seqs))
}
})
test_that("distribution_plot include_na adds an NA band", {
set.seed(3L)
seqs <- matrix(sample(c("A", "B", "C"), 20 * 6, replace = TRUE), 20, 6)
seqs[sample(length(seqs), 10)] <- NA
pdf(NULL); on.exit(dev.off(), add = TRUE)
res <- distribution_plot(seqs, na = TRUE)
expect_identical(tail(res$levels, 1L), "NA")
expect_length(res$palette, 4L)
})
test_that("distribution_plot supports geom = 'bar'", {
set.seed(4L)
seqs <- matrix(sample(c("A", "B"), 15 * 5, replace = TRUE), 15, 5)
pdf(NULL); on.exit(dev.off(), add = TRUE)
expect_silent(distribution_plot(seqs, geom = "bar"))
})
test_that("distribution_plot honours legend_position values", {
set.seed(5L)
seqs <- matrix(sample(c("A", "B", "C"), 12 * 5, replace = TRUE), 12, 5)
pdf(NULL); on.exit(dev.off(), add = TRUE)
for (pos in c("right", "bottom", "none")) {
expect_silent(distribution_plot(seqs, legend = pos))
}
})
test_that("distribution_plot rejects group vectors of wrong length", {
seqs <- matrix(sample(c("A", "B"), 20, replace = TRUE), 10, 2)
pdf(NULL); on.exit(dev.off(), add = TRUE)
expect_error(distribution_plot(seqs, group = c(1, 2, 3)), "length")
})
test_that("distribution_plot rejects all-NA input", {
pdf(NULL); on.exit(dev.off(), add = TRUE)
expect_error(distribution_plot(matrix(NA_character_, 4, 3)),
"no non-NA values")
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.