/usr/lib/R/site-library/IRanges/unitTests/test_Ranges-comparison.R is in r-bioc-iranges 2.8.1-1+b1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | test_Ranges_pcompare <- function()
{
x1 <- IRanges(6:16, width=4)
y <- IRanges(11, 14)
target <- c(-6:-4, -4L, -4L, 0L, 4L, 4L, 4:6)
checkIdentical(target, pcompare(x1, y))
checkIdentical(-target, pcompare(y, x1))
x2 <- IRanges(4:16, width=6)
target <- c(-6:-4, -4L, -4L, -3L, -2L, 1L, 4L, 4L, 4:6)
checkIdentical(target, pcompare(x2, y))
checkIdentical(-target, pcompare(y, x2))
x3 <- IRanges(8:16, width=2)
target <- c(-6:-4, -1L, 2L, 3L, 4:6)
checkIdentical(target, pcompare(x3, y))
checkIdentical(-target, pcompare(y, x3))
## Moving a 0-width range over a non 0-width range.
## Note that when the end of the 0-width range is equal to the start of
## the non 0-width range minus 1, returning code -5 (which describes
## a situation of adjacent ranges) seems appropriate.
## However, one could argue that returning code -1 (which describes a
## situation where one range is inside the other) would also be
## appropriate, because, in that case, the two ranges have the same start.
## So the question really is whether the 0-width range should be considered
## *outside* or *inside* the non 0-width range.
## It's an arbitrary choice and we chose the former.
x0 <- IRanges(10:16, width=0)
target <- c(-6:-5, 2L, 2L, 2L, 5:6)
checkIdentical(target, pcompare(x0, y))
checkIdentical(-target, pcompare(y, x0))
## Moving a 0-width range over a 0-width range.
y0 <- IRanges(13, 12)
target <- c(-6L, -6L, -6L, 0L, 6L, 6L, 6L)
checkIdentical(target, pcompare(x0, y0))
checkIdentical(-target, pcompare(y0, x0))
}
test_Ranges_order <- function()
{
ir1 <- IRanges(c(2,5,1,5), c(3,7,3,6))
ir1.sort <- IRanges(c(1,2,5,5), c(3,3,6,7))
ir1.rev <- IRanges(c(5,5,2,1), c(7,6,3,3))
checkIdentical(sort(ir1), ir1.sort)
checkIdentical(sort(ir1, decreasing=TRUE), ir1.rev)
checkException(sort(ir1, decreasing=NA), silent = TRUE)
}
|