###
test_PartitioningByEnd <- function()
{
## on a numeric vector, NG not supplied
current0 <- PartitioningByEnd()
checkTrue(validObject(current0))
target <- new("PartitioningByEnd")
checkIdentical(target, current0)
breakpoints <- c(0, 5, 5, 8)
current1 <- PartitioningByEnd(breakpoints)
checkTrue(validObject(current1))
checkIdentical(4L, length(current1))
checkIdentical(as.integer(breakpoints), end(current1))
checkIdentical(end(current1), cumsum(width(current1)))
checkIdentical(NULL, names(current1))
checkException(PartitioningByEnd(breakpoints, names=letters), silent=TRUE)
current2 <- PartitioningByEnd(breakpoints, names=letters[1:4])
checkTrue(validObject(current2))
checkIdentical(letters[1:4], names(current2))
names(breakpoints) <- names(current2)
current3 <- PartitioningByEnd(breakpoints)
checkIdentical(current2, current3)
current4 <- PartitioningByEnd(breakpoints, names=LETTERS[4:1])
checkIdentical(LETTERS[4:1], names(current4))
breakpoints <- rep.int(0, 1000)
current5 <- PartitioningByEnd(breakpoints)
checkTrue(validObject(current5))
checkIdentical(as.integer(breakpoints), end(current5))
checkIdentical(end(current5), cumsum(width(current5)))
## on a PartitioningByEnd object
checkIdentical(current1, PartitioningByEnd(current1)) # no-op
checkIdentical(current2, PartitioningByEnd(current2)) # no-op
checkException(PartitioningByEnd(current2, names=LETTERS), silent=TRUE)
current6 <- PartitioningByEnd(current2, names=names(current4))
checkTrue(validObject(current6))
checkIdentical(names(current4), names(current6))
## on CompressedList, SimpleList, IRanges, and list objects
do_checks <- function(x) {
checkIdentical(current1, PartitioningByEnd(x))
checkException(PartitioningByEnd(x, names=letters), silent=TRUE)
checkIdentical(current2, PartitioningByEnd(x, names=names(current2)))
names(x) <- names(current2)
checkIdentical(current2, PartitioningByEnd(x))
checkIdentical(current4, PartitioningByEnd(x, names=names(current4)))
}
x <- RleList(Rle(), Rle(-3, 5), Rle(), Rle(1:0, c(2,1)), compress=TRUE)
do_checks(x)
do_checks(as(x, "SimpleList"))
do_checks(as.list(x))
x <- IRanges(seq(148, by=-50, length.out=4), width=width(current1))
do_checks(x)
## TODO: Uncomment this when as.list() works again on IRanges objects
#do_checks(as.list(x))
do_checks(list(NULL, integer(5), complex(0), raw(3)))
}
test_PartitioningByWidth <- function()
{
## on a numeric vector, NG not supplied
current0 <- PartitioningByWidth()
checkTrue(validObject(current0))
target <- new("PartitioningByWidth")
checkIdentical(target, current0)
widths <- c(0, 5, 0, 3)
current1 <- PartitioningByWidth(widths)
checkTrue(validObject(current1))
checkIdentical(4L, length(current1))
checkIdentical(as.integer(widths), width(current1))
checkIdentical(end(current1), cumsum(width(current1)))
checkIdentical(NULL, names(current1))
checkException(PartitioningByWidth(widths, names=letters), silent=TRUE)
current2 <- PartitioningByWidth(widths, names=letters[1:4])
checkTrue(validObject(current2))
checkIdentical(letters[1:4], names(current2))
names(widths) <- names(current2)
current3 <- PartitioningByWidth(widths)
checkIdentical(current2, current3)
current4 <- PartitioningByWidth(widths, names=LETTERS[4:1])
checkIdentical(LETTERS[4:1], names(current4))
widths <- rep.int(0, 1000)
current5 <- PartitioningByWidth(widths)
checkTrue(validObject(current5))
checkIdentical(as.integer(widths), width(current5))
checkIdentical(end(current5), cumsum(width(current5)))
## on a PartitioningByWidth object
checkIdentical(current1, PartitioningByWidth(current1)) # no-op
checkIdentical(current2, PartitioningByWidth(current2)) # no-op
checkException(PartitioningByWidth(current2, names=LETTERS), silent=TRUE)
current6 <- PartitioningByWidth(current2, names=names(current4))
checkTrue(validObject(current6))
checkIdentical(names(current4), names(current6))
## on CompressedList, SimpleList, IRanges, and list objects
do_checks <- function(x) {
checkIdentical(current1, PartitioningByWidth(x))
checkException(PartitioningByWidth(x, names=letters), silent=TRUE)
checkIdentical(current2, PartitioningByWidth(x, names=names(current2)))
names(x) <- names(current2)
checkIdentical(current2, PartitioningByWidth(x))
checkIdentical(current4, PartitioningByWidth(x, names=names(current4)))
}
x <- RleList(Rle(), Rle(-3, 5), Rle(), Rle(1:0, c(2,1)), compress=TRUE)
do_checks(x)
do_checks(as(x, "SimpleList"))
do_checks(as.list(x))
x <- IRanges(seq(148, by=-50, length.out=4), width=width(current1))
do_checks(x)
## TODO: Uncomment this when as.list() works again on IRanges objects
#do_checks(as.list(x))
do_checks(list(NULL, integer(5), complex(0), raw(3)))
}
test_PartitioningByEndOrWidth_NG_supplied <- function()
{
for (class in c("PartitioningByEnd", "PartitioningByWidth")) {
CONSTRUCTOR <- get(class)
x <- c(3, 3, 4, 6)
NG <- 8
current1 <- CONSTRUCTOR(x, NG)
checkTrue(is(current1, class))
checkTrue(validObject(current1))
checkIdentical(8L, length(current1))
checkIdentical(tabulate(x, nbins=NG), width(current1))
checkException(CONSTRUCTOR(x, NG, names=letters[1:4]), silent=TRUE)
current2 <- CONSTRUCTOR(x, NG, names=letters[1:8])
checkTrue(validObject(current2))
checkIdentical(letters[1:8], names(current2))
names(x) <- letters[1:4]
current3 <- CONSTRUCTOR(x, NG)
checkIdentical(current1, current3)
}
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.