test_AtomicList_constructors <- function() {
subclasses <- c(logical="LogicalList",
integer="IntegerList",
#double="NumericList",
numeric="NumericList",
complex="ComplexList",
character="CharacterList",
raw="RawList",
Rle="RleList")
for (elt_type in names(subclasses)) {
subclass <- subclasses[[elt_type]]
constructor <- get(subclass)
vec1 <- get(elt_type)(6)
vec2 <- get(elt_type)(8)
target <- list(A=vec1, B=vec2)
for (compress in c(TRUE, FALSE)) {
current <- constructor(A=vec1, B=vec2, compress=compress)
checkTrue(is(current, subclass))
checkIdentical(compress, is(current, "CompressedList"))
checkIdentical(elt_type, elementType(current))
checkIdentical(target, as.list(current))
checkIdentical(unname(target), as.list(current, use.names=FALSE))
}
}
}
test_AtomicList_general <- function() {
vec1 <- c(1L,2L,NA,3L,NA,5L,2L,8L)
vec2 <- c(NA,15L,45L,20L,NA,1L,15L,100L,80L,5L,NA)
for (compress in c(TRUE, FALSE)) {
for (type in c("IntegerList", "RleList")) {
list1 <- do.call(type, list(one = vec1, vec2, compress = compress))
checkIdentical(as.list(list1 %in% c(1L, 5L)),
lapply(list1, "%in%", c(1L, 5L)))
checkIdentical(lapply(list1 %in%
IntegerList(one = vec1, vec2,
compress = compress),
as.vector),
mapply("%in%", lapply(list1, as.vector),
list(one = vec1, vec2)))
checkIdentical(as.list(is.na(list1)), lapply(list1, is.na))
checkIdentical(as.list(match(list1, c(1L, 5L))),
lapply(list1, match, c(1L, 5L)))
checkIdentical(lapply(match(list1,
IntegerList(one = vec1, vec2,
compress = compress)),
as.vector),
mapply(match, lapply(list1, as.vector),
list(one = vec1, vec2)))
checkIdentical(as.list(sort(list1)), lapply(list1, sort))
checkIdentical(as.list(unique(list1)), lapply(list1, unique))
}
}
}
test_RleList_methods <- function() {
x1 <- RleList(11:15, 15L, integer(0), 15:16, compress=FALSE)
x2 <- RleList(11:15, 15L, integer(0), 15:16, compress=TRUE)
checkIdentical(as(runValue(x1), "CompressedIntegerList"), runValue(x2))
checkIdentical(as(runLength(x1), "CompressedIntegerList"), runLength(x2))
checkIdentical(as(ranges(x1), "CompressedIRangesList"), ranges(x2))
a1 <- Rle(1, 999722111)
a2 <- 20 * a1
a <- RleList(a1, a2, compress=TRUE)
b1 <- c(a1, a1)
b2 <- 20 * b1
b <- RleList(b1, b2, compress=FALSE)
## FIXME: 'a1 <= 19:21' is taking forever and eats up all the memory in
## BioC <= 2.12! Seems like 'a1' is expanded to integer vector first, which
## is not good :-/
#for (y in list(8L, 8, 19:21)) {
for (y in list(8L, 8)) {
## With a CompressedRleList
target <- RleList(a1 <= y, a2 <= y, compress=TRUE)
current <- a <= y
checkIdentical(target, current)
## With a SimpleRleList
target <- RleList(b1 <= y, b2 <= y, compress=FALSE)
current <- b <= y
checkIdentical(target, current)
}
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.