Nothing
# This tests the behaviour of the makeCountMatrix function.
# library(DropletUtils); library(testthat); source("test-makecounts.R")
all.genes <- LETTERS
ngenes <- length(LETTERS)
all.cells <- 1:10
ncells <- length(all.cells)
test_that("makeCountMatrix works with all input combinations", {
for (N in c(0, 10, 100, 1000)) {
for (G in 1:4) {
if (G<=2L) {
genes <- sample(ngenes, N, replace=TRUE)
} else {
genes <- sample(all.genes, N, replace=TRUE)
}
if (G%%2==1L) {
ref.genes <- all.genes
} else {
ref.genes <- NULL
}
for (C in 1:4) {
if (C<=2L) {
cells <- sample(ncells, N, replace=TRUE)
} else {
cells <- sample(all.cells, N, replace=TRUE)
}
if (C%%2==1L) {
ref.cells <- all.cells
} else {
ref.cells <- NULL
}
for (V in 1:2) {
if (V==1L) {
vals <- NULL
} else {
vals <- rpois(N, lambda=10)
}
######################### TESTING BEGINS HERE.
obs <- DropletUtils:::makeCountMatrix(genes, cells, all.genes=ref.genes, all.cells=ref.cells, value=vals)
ref <- as.matrix(obs)
for (i in seq_len(N)) {
if (is.null(vals)) {
loss <- 1
} else {
loss <- vals[i]
}
ref[genes[i], cells[i]] <- ref[genes[i], cells[i]] - loss
}
expect_true(all(ref==0))
# Can only check dimensions if we've specified them beforehand.
if (!is.null(ref.genes)) {
expect_identical(nrow(obs), ngenes)
}
if (!is.null(ref.cells)) {
expect_identical(ncol(obs), ncells)
}
######################### END TESTING.
} # V loop
} # C loop
} # G loop
} # N loop
})
test_that("makeCountMatrix behaves on silly inputs", {
expect_error(DropletUtils:::makeCountMatrix(1, 1:2), "identical")
expect_error(DropletUtils:::makeCountMatrix(1, 1, value=1:2), "identical")
obs <- DropletUtils:::makeCountMatrix(integer(0), integer(0))
expect_identical(dim(obs), c(0L, 0L))
obs <- DropletUtils:::makeCountMatrix(integer(0), integer(0), all.genes=all.genes)
expect_identical(dim(obs), c(ngenes, 0L))
obs <- DropletUtils:::makeCountMatrix(integer(0), integer(0), all.cells=all.cells)
expect_identical(dim(obs), c(0L, ncells))
expect_error(DropletUtils:::makeCountMatrix("a", 1, all.genes=LETTERS), "entry of")
expect_error(DropletUtils:::makeCountMatrix(100, 1, all.genes=LETTERS), "length of")
expect_error(DropletUtils:::makeCountMatrix(0, 1), "positive")
expect_error(DropletUtils:::makeCountMatrix(1, "a", all.cells=LETTERS), "entry of")
expect_error(DropletUtils:::makeCountMatrix(1, 100, all.cells=LETTERS), "length of")
expect_error(DropletUtils:::makeCountMatrix(1, 0), "positive")
})
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.