Remove dbDisconnect calls from dbReorganize; add regression test
[filehash.git] / tests / reg-tests.R
blob0c969e9c2624ddc22e485e1c0d030f0949ec21fa
1 library(filehash)
3 ######################################################################
4 ## Test 'filehashRDS' class
6 dbCreate("mydbRDS", "RDS")
7 db <- dbInit("mydbRDS", "RDS")
8 show(db)
10 ## Put some data into it
11 set.seed(1000)
12 dbInsert(db, "a", 1:10)
13 dbInsert(db, "b", rnorm(100))
14 dbInsert(db, "c", 100:1)
15 dbInsert(db, "d", runif(1000))
16 dbInsert(db, "other", "hello")
18 dbList(db)
20 dbExists(db, "e")
21 dbExists(db, "a")
23 env <- db2env(db)
24 ls(env)
26 env$a
27 env$b
28 env$c
29 str(env$d)
30 env$other
32 env$b <- rnorm(100)
33 mean(env$b)
35 env$a[1:5] <- 5:1
36 print(env$a)
38 dbDelete(db, "c")
40 tryCatch(print(env$c), error = function(e) print(e))
41 tryCatch(dbFetch(db, "c"), error = function(e) print(e))
44 ######################################################################
45 ## test filehashDB1 class
47 dbCreate("mydb", "DB1")
48 db <- dbInit("mydb", "DB1")
50 ## Put some data into it
51 set.seed(1000)
52 dbInsert(db, "a", 1:10)
53 dbInsert(db, "b", rnorm(100))
54 dbInsert(db, "c", 100:1)
55 dbInsert(db, "d", runif(1000))
56 dbInsert(db, "other", "hello")
58 dbList(db)
60 env <- db2env(db)
61 ls(env)
63 env$a
64 env$b
65 env$c
66 str(env$d)
67 env$other
69 env$b <- rnorm(100)
70 mean(env$b)
72 env$a[1:5] <- 5:1
73 print(env$a)
75 dbDelete(db, "c")
77 tryCatch(print(env$c), error = function(e) print(e))
78 tryCatch(dbFetch(db, "c"), error = function(e) print(e))
80 numbers <- rnorm(100)
81 dbInsert(db, "numbers", numbers)
82 b <- dbFetch(db, "numbers")
83 stopifnot(all.equal(numbers, b))
84 stopifnot(identical(numbers, b))
89 ######################################################################
90 ######################################################################
91 ## Test everything on all database formats
93 types <- c("DB1", "RDS")
94 set.seed(1000)
96 for(type in types) {
97     cat("-----------------\n")
98     cat("-----------------\n")
99     cat("TESTING TYPE", type, "\n")
100     cat("-----------------\n")
101     cat("-----------------\n")
103     name <- paste("mydb", type, sep = "")
104     dbCreate(name, type)
105     db <- dbInit(name, type)
107     dbInsert(db, "a", 1:10)  ## integer
108     dbInsert(db, "b", rnorm(100))  ## numeric
109     dbInsert(db, "c", 100:1)  ## integer
110     dbInsert(db, "d", runif(1000))  ## numeric
111     dbInsert(db, "other", "hello")  ## character
113     ## Use extractor/replacement methods
114     db$list <- as.list(1:100)
115     db$dataf <- data.frame(x = rnorm(2000), y = rnorm(2000), z = rnorm(2000))
117     show(db)
119     str(db$dataf)
120     str(db$list)
121     print(db$d)
122     print(db$a)
123     print(db$b)
124     print(db$c)
125     print(db$other)
126         
127     env <- db2env(db)
128     ls(env)
129     
130     print(env$a)
131     print(env$b)
132     print(env$c)
133     str(env$d)
134     print(env$other)
136     env$b <- rnorm(100)
137     mean(env$b)
138     
139     env$a[1:5] <- 5:1
140     print(env$a)
142     with(db, print(mean(b)))
144     r <- lapply(db, summary)
145     str(r)
147     dbDelete(db, "c")
149     tryCatch(print(env$c), error = function(e) print(e))
150     tryCatch(dbFetch(db, "c"), error = function(e) print(e))
151     
152     numbers <- rnorm(100)
153     dbInsert(db, "numbers", numbers)
154     b <- dbFetch(db, "numbers")
155     stopifnot(all.equal(numbers, b))
156     stopifnot(identical(numbers, b))
161 ## Other tests
163 rm(list = ls())
166 dbCreate("testLoadingDB", "DB1")
167 db <- dbInit("testLoadingDB", "DB1")
169 set.seed(234)
171 db$a <- rnorm(100)
172 db$b <- runif(1000)
174 dbLoad(db)  ## 'a', 'b'
175 summary(a)
176 summary(b)
178 rm(list = ls())
179 db <- dbInit("testLoadingDB", "DB1")
181 dbLazyLoad(db)
183 summary(a)
184 summary(b)
188 ################################################################################
189 ## Check dbReorganize
191 dbCreate("test_reorg", "DB1")
192 db <- dbInit("test_reorg", "DB1")
194 set.seed(1000)
195 dbInsert(db, "a", 1)
196 dbInsert(db, "a", 1)
197 dbInsert(db, "a", 1)
198 dbInsert(db, "a", 1)
199 dbInsert(db, "b", rnorm(1000))
200 dbInsert(db, "b", rnorm(1000))
201 dbInsert(db, "b", rnorm(1000))
202 dbInsert(db, "b", rnorm(1000))
203 dbInsert(db, "c", runif(1000))
204 dbInsert(db, "c", runif(1000))
205 dbInsert(db, "c", runif(1000))
206 dbInsert(db, "c", runif(1000))
208 summary(db$b)
209 summary(db$c)
211 print(file.info(db@datafile)$size)
213 dbReorganize(db)
215 db <- dbInit("test_reorg", "DB1")
217 print(file.info(db@datafile)$size)
219 summary(db$b)
220 summary(db$c)