1 testBasicGetSet_0 <- function() {
2 h <- newDict(size=32L, hash.alg=0L)
3 keys <- paste("a", 1:32)
11 testBasicGetSet_1 <- function() {
12 h <- newDict(size=32L, hash.alg=1L)
13 keys <- paste("a", 1:32)
18 checkEquals(k, h[[k]])
21 testBasicGetSet_2 <- function() {
22 h <- newDict(size=32L, hash.alg=2L)
23 keys <- paste("a", 1:32)
28 checkEquals(k, h[[k]])
31 test_dictInfo <- function() {
34 checkEquals(c("size", "nitems", "type", "alg"), names(info))
35 checkEquals(0L, info$nitems)
36 checkEquals(64L, info$size)
39 testBasicGetSet_3 <- function() {
40 h <- newDict(size=32L, hash.alg=3L)
41 keys <- paste("a", 1:32)
46 checkEquals(k, h[[k]])
49 testDollar <- function() {
50 h <- newDict(size=32L, hash.alg=3L)
59 test_listHashFunctions <- function() {
60 funs <- listHashFunctions()
61 expect <- c(0L, 1L, 2L, 3L)
62 names(expect) <- c("PJW", "DJB2", "JOAAT", "LOOKUP3")
63 checkEquals(expect, funs)
66 test_del <- function() {
67 kk <- paste("a", 1:100, sep="")
71 checkEquals(100L, length(d))
74 checkEquals(50L, length(d))
77 checkEquals(0L, length(d))
82 checkEquals(100L, length(d))
84 checkEquals(FALSE, del(d, "FOOBAR"))
88 checkEquals(TRUE, del(d, k))
89 checkEquals(0L, length(d))
92 test_keys <- function() {
93 d <- newDict(64L, hash.alg=0L)
94 kk <- paste("abc", 1:30, sep="")
98 checkEquals(sort(kk), sort(dkeys))
100 checkEquals(sort(kk), sort(dnames))
103 test_as.list <- function() {
104 d <- newDict(64L, hash.alg=0L)
105 kk <- paste("abc", 1:30, sep="")
106 for (i in seq(along=kk))
108 expect <- structure(as.list(1:length(kk)), names=kk)
110 ans1 <- as(d, "list")
112 checkEquals(ans1, ans2)
113 checkEquals(expect[nms], ans1[nms])
116 test_hashCodes <- function() {
118 algs <- listHashFunctions()
119 keys <- paste(1:20, "abc", sep="*")
120 ## just test length and type for now
122 codes <- hashCodes(keys, s, a)
123 checkEquals(length(keys), length(codes))
124 checkEquals("integer", typeof(codes))
125 checkEquals(keys, names(codes))
129 test_copyDict <- function() {
130 keys <- paste("abc", 1:10, sep="")
135 deep <- copyDict(orig)
136 ## was the copy successful?
137 checkEquals(as.list(orig), as.list(deep))
138 ## is it really deep?
140 orig[[k]] <- paste(k, "FOO")
142 checkEquals(k, deep[[k]])
145 test_ElementDuplication <- function() {
147 d[["a"]] <- list(foo=1) # an un-NAMED value!
151 checkEquals(1, d[["a"]][["foo"]])
154 checkEquals(1:4, d[["b"]])
156 v <- list(list(foo=1))
158 d[["b"]][[1]][["foo"]] <- 100
159 checkEquals(1, v[[1]][["foo"]])
160 checkEquals(100, d[["b"]][[1]][["foo"]])
163 testAllKeys <- function() {
166 h[[LETTERS[i]]] <- letters[i]
167 checkEquals(LETTERS, names(h))
168 checkEquals(LETTERS, ls(h))
169 checkEquals(LETTERS, keys(h, sort=TRUE))
172 test_mget <- function() {
174 for (i in 1:26) h[[LETTERS[i]]] <- letters[i]
176 z1 <- mget(LETTERS[1:5], h)
177 z2 <- mget(LETTERS[1:5], envir=h)
179 checkEquals(5, length(z1))
180 checkEquals(LETTERS[1:5], names(z1))
181 checkEquals(letters[1:5], unlist(z1, use.names=FALSE))
183 z3 <- mget(c(LETTERS[1:3], "xxx", "yyy"), h, ifnotfound=NULL)
184 checkEquals(3, length(z3))
185 checkEquals(LETTERS[1:3], names(z3))
186 checkEquals(letters[1:3], unlist(z3, use.names=FALSE))
188 z4 <- mget(c(LETTERS[1:3], "xxx", "yyy"), h, ifnotfound=0L)
189 checkEquals(5, length(z4))
190 checkEquals(c(letters[1:3], 0, 0), unlist(z4, use.names=FALSE))
193 test_dMget <- function() {
195 for (i in 1:26) h[[LETTERS[i]]] <- letters[i]
197 z1 <- dMget(h, LETTERS[1:5])
198 checkEquals(5, length(z1))
199 checkEquals(LETTERS[1:5], sort(names(z1)))
200 checkEquals(letters[1:5], sort(unlist(z1, use.names=FALSE)))
202 z3 <- dMget(h, c(LETTERS[1:3], "xxx", "yyy"), ifnotfound=NULL)
203 checkEquals(3, length(z3))
204 checkEquals(LETTERS[1:3], sort(names(z3)))
205 checkEquals(letters[1:3], sort(unlist(z3, use.names=FALSE)))
207 z4 <- dMget(h, c(LETTERS[1:3], "xxx", "yyy"), ifnotfound=0L)
208 checkEquals(5, length(z4))
209 checkEquals(2, sum(z4 == "0"))