# tests/testthat/test_designs.R In tudo-r/BatchExperiments: Statistical Experiments on Batch Computing Clusters

```context("designs")

test_that("designs", {
# one point, empty function call
d = BatchExperiments:::designIterator(ex=list())
expect_true(d\$hasNext())
expect_equal(d\$n.states, 1)
expect_equal(d\$nextElem(), list())

d = BatchExperiments:::designIterator(ex=list(), .design=data.frame(a=1:3))
expect_true(d\$hasNext())
expect_equal(d\$n.states, 3L)
xs = replicate(3, d\$nextElem(), simplify=FALSE)
expect_equal(xs, list(list(a=1L), list(a=2L), list(a=3L)))

d = BatchExperiments:::designIterator(ex=list(), .design=data.frame(a=1:2, b=4:5))
expect_true(d\$hasNext())
expect_equal(d\$n.states, 2L)
xs = replicate(2, d\$nextElem(), simplify=FALSE)
expect_equal(xs, list(list(a=1L, b=4L), list(a=2L, b=5L)))

d = BatchExperiments:::designIterator(ex=list(a=c("x", "y"), b=4:5), .design=data.frame(c=c(1,6), d=c(7,9)))
expect_true(d\$hasNext())
expect_equal(d\$n.states, 8L)
xs = replicate(8, as.data.frame(d\$nextElem()), simplify=FALSE)
xs = do.call(rbind, xs)
data = data.frame(
c = c(1, 1, 1, 1, 6, 6, 6, 6),
d = c(7, 7, 7, 7, 9, 9, 9, 9),
a = c("x", "y", "x", "y", "x", "y", "x", "y"),
b = c(4, 4, 5, 5, 4, 4, 5, 5)
)
expect_equal(xs, data[names(xs)])
expect_false(d\$hasNext())
d\$reset()
expect_equal(d\$n.states, 8L)
xs = replicate(8, as.data.frame(d\$nextElem()), simplify=FALSE)
xs = do.call(rbind, xs)
expect_equal(xs, data[names(xs)])

d = BatchExperiments:::designIterator(ex=list(a=as.factor(c("u", "v"))), .design=data.frame(b=as.factor(c("a", "b")), c=c("x", "y"), stringsAsFactors=FALSE))
x  = d\$nextElem()
y = list(b=factor("a", levels=c("a", "b")), c="x", a=factor("u", levels=c("u", "v")))
expect_equal(x, y[names(x)])

#expect_equal(nrow(d\$design), 2)
#expect_equal(ncol(d\$design), 1)
#expect_equal(colnames(d\$design), c("a"))
#expect_true(is.numeric(d\$design\$a))
#d = makeDesign(a, design=data.frame(a=1:2, b=c("a", "b")))
#expect_equal(nrow(d\$design), 2)
#expect_equal(ncol(d\$design), 2)
#expect_equal(colnames(d\$design), c("a", "b"))
#expect_true(is.numeric(d\$design\$a) && is.character(d\$design\$b))
#d = makeDesign(a, design=data.frame(a=1:2, b=c("a", "b")), exhaustive=list(c=pi, d=1:5))
#expect_equal(nrow(d\$design), 10)
#expect_equal(ncol(d\$design), 4)
#expect_equal(colnames(d\$design), c("a", "b", "c", "d"))
#expect_true(is.numeric(d\$design\$a) && is.character(d\$design\$b)
#  && is.numeric(d\$design\$c) && is.numeric(d\$design\$d))

#d = check_error(makeDesign(a, exhaustive=list(x=iris)), "primitive")
})
```
tudo-r/BatchExperiments documentation built on Dec. 1, 2017, 4:02 a.m.