File: test_ConstantArray-class.R

package info (click to toggle)
r-bioc-delayedarray 0.24.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,480 kB
  • sloc: ansic: 727; makefile: 2
file content (58 lines) | stat: -rw-r--r-- 2,057 bytes parent folder | download
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
50
51
52
53
54
55
56
57
58
test_ConstantArray <- function()
{
    A1 <- ConstantArray(c(500, 200), value=1)
    checkIdentical(as.matrix(A1), matrix(1, 500, 200))
    checkIdentical(as.matrix(A1[1:10,]), matrix(1, 10, 200))
    checkIdentical(as.matrix(A1[,1:10]), matrix(1, 500, 10))

    checkIdentical(as.character(class(A1)), "ConstantMatrix")
    checkTrue(is(A1, "ConstantArray"))
    checkTrue(!is_sparse(A1))

    A2 <- ConstantArray(c(500, 20, 10), value=NA)
    checkIdentical(as.array(A2), array(NA, c(500, 20, 10)))
    checkIdentical(as.character(class(A2)), "ConstantArray")
    checkTrue(!is_sparse(A2))

    A3 <- ConstantArray(c(100, 200), value=0)
    checkTrue(is_sparse(A3))
    checkIdentical(as.matrix(A3), matrix(0, 100, 200))

    out <- extract_sparse_array(A3, list(1:10, 1:20))
    checkIdentical(dim(out), c(10L, 20L))
    checkIdentical(nzdata(out), numeric(0))
}

test_ConstantArray_other <- function()
{
    # Testing some of the more odd types we can put in here.
    Ac <- ConstantArray(c(500, 200), value="Aaron")
    checkIdentical(as.matrix(Ac), matrix("Aaron", 500, 200))
    checkTrue(!is_sparse(Ac))

    Acs <- ConstantArray(c(500, 200), value="")
    checkIdentical(as.matrix(Acs), matrix("", 500, 200))
    checkTrue(is_sparse(Acs))

    Al <- ConstantArray(c(500, 200), value=list("Aaron"))
    checkIdentical(as.matrix(Al), matrix(list("Aaron"), 500, 200))

    Al2 <- ConstantArray(c(500, 200), value=list(letters))
    checkIdentical(as.matrix(Al2), matrix(list(letters), 500, 200))

    # Checking error states.
    checkException(ConstantArray(c(500, -1), value=0), silent=TRUE)
    checkException(ConstantArray(c(500, 200), value=letters), silent=TRUE)
}

test_ConstantArray_coercion <- function()
{
    A1 <- ConstantArray(c(500, 200), value=1)
    checkIdentical(A1, as(A1, "ConstantArray"))

    seed <- ConstantArraySeed(c(500, 200), value=1)
    A2 <- new("ConstantArray", seed=seed)
    checkIdentical(as.character(class(A2)[1]), "ConstantArray")
    A2m <- as(A2, "ConstantMatrix")
    checkIdentical(A2m, DelayedArray(seed))
}