Nothing
test_that("arg:data invalid", {
expect_error(tox_data(list(1, 2)), "be a data.frame")
expect_warning(tox_data(data.frame(t=0, n=1, t=2, c=3, foo=4)), "more than four columns")
expect_error(tox_data(data.frame(t="foo", n=0)), "first column must be numeric")
expect_error(tox_data(data.frame(t=0, n="foo")), "second column must be numeric")
expect_error(tox_data(data.frame(t=0, n=1, t=2, conc="foo")), "fourth column must be numeric")
expect_error(tox_data(data.frame(t=0, n=1, t=2, conc=3), exposure=list()), "Confusion about exposure")
})
test_that("arg:data", {
df <- data.frame(t=0:4, n=1)
# various types of data arguments
# matrix
dat <- tox_data(as.matrix(df))@data
expect_equal(length(dat), 1) # list of trial data
dat <- dat[[1]] # unnest list
expect_true(is.data.frame(dat))
expect_equal(length(dat), 2)
expect_equal(names(dat), names(df))
expect_equal(dplyr::select(dat, 1, 2), df, ignore_attr=TRUE)
# data.frame
dat <- tox_data(df)@data
expect_equal(length(dat), 1) # list of trial data
dat <- dat[[1]] # unnest list
expect_true(is.data.frame(dat))
expect_equal(length(dat), 2)
expect_equal(names(dat), names(df))
expect_equal(dplyr::select(dat, 1, 2), df, ignore_attr=TRUE)
# tibble
dat <- tox_data(tibble::as_tibble(df))@data
expect_equal(length(dat), 1) # list of trial data
dat <- dat[[1]] # unnest list
expect_true(is.data.frame(dat))
expect_equal(length(dat), 2)
expect_equal(names(dat), names(df))
expect_equal(dplyr::select(dat, 1, 2), df, ignore_attr=TRUE)
})
test_that("arg:data=data.frame format", {
# basic data, two cols
df2 <- data.frame(t=0:4, n=1)
dat <- tox_data(df2)
# observed
expect_true(is(dat, "ToxData"))
expect_true(is.list(dat@data))
expect_equal(length(dat@data), 1)
expect_equal(names(dat@data), "trial") # default trial id
expect_true(is.data.frame(dat@data[[1]]))
expect_equal(dat@data[[1]], df2, ignore_attr=TRUE)
expect_equal(names(dat@data[[1]]), names(df2))
# exposure
expect_true(is.list(dat@exposure))
expect_equal(length(dat@exposure), 0)
# qty
expect_equal(dat@qty_cols, "n")
# with trial id, three cols
df3 <- data.frame(t=0:4, n=1, t="foo")
dat <- tox_data(df3)
# single trial
expect_equal(length(dat@data), 1)
expect_equal(names(dat@data), "foo")
expect_equal(dat@data[[1]], df3[, c(1, 2)], ignore_attr=TRUE)
expect_equal(length(dat@exposure), 0)
expect_equal(dat@qty_cols, "n")
# multiple trials
df3a <- data.frame(t=0:2, n=1, trial="foo")
df3b <- data.frame(t=0:2, n=2, trial="bar")
df3 <- rbind(df3a, df3b)
dat <- tox_data(df3)
expect_equal(length(dat@data), 2)
expect_equal(names(dat@data), c("foo", "bar"))
expect_equal(dat@data[["foo"]], df3a[, c(1, 2)], ignore_attr=TRUE)
expect_equal(dat@data[["bar"]], df3b[, c(1, 2)], ignore_attr=TRUE)
expect_false(tibble::is_tibble(dat@data[["foo"]]))
expect_equal(length(dat@exposure), 0)
expect_equal(dat@qty_cols, "n")
# with concentration, four cols
df4a <- data.frame(t=0:2, n=3, trial="foo", c=5)
df4b <- data.frame(t=0:2, n=4, trial="bar", c=c(6, 6, 7))
df4 <- rbind(df4a, df4b)
dat <- tox_data(df4)
expect_equal(length(dat@data), 2)
expect_equal(names(dat@data), c("foo", "bar"))
expect_equal(dat@data[["foo"]], df4a[, c(1, 2)], ignore_attr=TRUE)
expect_equal(dat@data[["bar"]], df4b[, c(1, 2)], ignore_attr=TRUE)
expect_false(tibble::is_tibble(dat@data[["foo"]]))
expect_equal(length(dat@exposure), 2)
expect_equal(names(dat@exposure), c("foo", "bar"))
expect_equal(dat@exposure[["foo"]], df4a[, c(1, 4)], ignore_attr=TRUE)
expect_equal(dat@exposure[["bar"]], df4b[, c(1, 4)], ignore_attr=TRUE)
expect_equal(dat@qty_cols, "n")
})
test_that("arg:data=data.frame with NAs", {
# basic data, two cols
df2 <- data.frame(t=0:2, n=c(1, NA_real_, 2))
dat <- tox_data(df2)
# observed without NAs
expect_equal(length(dat@data), 1)
expect_equal(dat@data[[1]], df2 %>% dplyr::filter(!is.na(n)))
# with concentration, four cols
df4 <- data.frame(t=0:3, n=c(1, NA_real_, 2, 3), trial="foo", c=c(0, 1, NA_real_, 2))
dat <- tox_data(df4)
expect_equal(length(dat@data), 1)
# observed without NAs
expect_equal(dat@data[[1]], df4 %>% dplyr::filter(!is.na(n)) %>% dplyr::select(t, n))
# exposure without NAs
expect_equal(dat@exposure[[1]], df4 %>% dplyr::filter(!is.na(c)) %>% dplyr::select(t, c))
})
# TODO test tox_data with exposure argument
# TODO test surv_data
test_that("tox_exposure", {
# named numeric vector/list
vec <- c(foo=1)
exp <- tox_exposure(vec)
expect_equal(length(exp), 1)
expect_equal(names(exp), names(vec))
expect_equal(exp[[1]][, 2], vec[[1]])
vec <- c(foo=1, bar=2)
exp <- tox_exposure(vec)
expect_equal(length(exp), 2)
expect_equal(names(exp), names(vec))
expect_equal(exp[[1]][, 2], vec[[1]])
expect_equal(exp[[2]][, 2], vec[[2]])
vec <- list(foo=1, bar=2)
exp <- tox_exposure(vec)
expect_equal(length(exp), 2)
expect_equal(names(exp), names(vec))
expect_equal(exp[[1]][, 2], vec[[1]])
expect_equal(exp[[2]][, 2], vec[[2]])
# data.frame w/o trial ids -> fails
df <- data.frame(time=0, conc=1)
expect_error(tox_exposure(df), "at least three columns")
# data.frame with trial id
df <- data.frame(time=0, conc=1, trial="foo")
exp <- tox_exposure(df)
expect_equal(length(exp), 1)
expect_equal(names(exp), "foo")
expect_equal(exp[[1]], df[, c(1, 2)], ignore_attr=TRUE)
dfa <- data.frame(time=0:1, conc=1, trial="foo")
dfb <- data.frame(time=0:1, conc=c(2, 3), trial="bar")
df <- rbind(dfa, dfb)
exp <- tox_exposure(df)
expect_equal(length(exp), 2)
expect_equal(sort(names(exp)), sort(unique(df$trial)))
expect_equal(exp[["foo"]], dfa[, c(1, 2)], ignore_attr=TRUE)
expect_equal(exp[["bar"]], dfb[, c(1, 2)], ignore_attr=TRUE)
# list of various object types
lst <- list(foo=1, bar=data.frame(t=1, c=2))
exp <- tox_exposure(lst)
expect_equal(length(exp), 2)
expect_equal(sort(names(exp)), sort(unique(df$trial)))
expect_equal(exp[["foo"]][, 2], lst$foo, ignore_attr=TRUE)
expect_equal(exp[["bar"]], lst$bar[, c(1, 2)], ignore_attr=TRUE)
})
test_that("tox_exposure invalid arg", {
expect_error(tox_exposure())
# missing trial ids
expect_error(tox_exposure(c(1, 2)), "empty or missing")
expect_error(tox_exposure(list(1, 2)), "empty or missing")
expect_error(tox_exposure(list(foo=1, 2)), "empty or missing")
expect_error(tox_exposure(data.frame(time=0, conc=1, trial=c("foo","bar",""))), "empty or missing")
# invalid data.frame format
expect_error(tox_exposure(data.frame(t=0, c=0)), "at least three columns")
expect_error(tox_exposure(data.frame(t="foo", c=0, tr="bar")), "must be numeric")
expect_error(tox_exposure(data.frame(t=0, c="foo", tr="bar")), "must be numeric")
# other invalid argument
expect_error(tox_exposure(minnow_it), "invalid type")
# invalid list elements
expect_error(tox_exposure(list(foo=1, bar="a")), "invalid type")
})
test_that("td2cs", {
## valid arguments
sc <- Lemna_SETAC() %>% set_times(0:4)
# single tox_data dataset
td <- tox_data(data.frame(time=0, obs=0, trial="foo"))
cs <- td2cs(sc, td)
expect_equal(length(cs), 1)
expect_true(all(is_caliset(cs)))
expect_equal(cs[[1]]@scenario, sc)
expect_equal(cs[[1]]@data, td@data[[1]])
expect_equal(cs[[1]]@tag, "foo")
# scenario is a sequence, single tox_data dataset
sq <- sequence(list(sc, sc), breaks=2)
td <- tox_data(data.frame(time=0, obs=0, trial="foo"))
cs <- td2cs(sq, td)
expect_equal(length(cs), 1)
expect_true(all(is_caliset(cs)))
expect_equal(cs[[1]]@scenario, sq)
expect_equal(cs[[1]]@data, td@data[[1]])
expect_equal(cs[[1]]@tag, "foo")
# multiple tox_data datasets
td <- tox_data(data.frame(time=0, obs=0:1, trial=c("foo", "bar")))
cs <- td2cs(sc, td)
expect_equal(length(cs), 2)
expect_true(all(is_caliset(cs)))
expect_equal(cs[[1]]@scenario, sc)
expect_equal(cs[[2]]@scenario, sc)
expect_equal(cs[[1]]@data, td@data[[1]])
expect_equal(cs[[2]]@data, td@data[[2]])
expect_equal(cs[[1]]@tag, "foo")
expect_equal(cs[[2]]@tag, "bar")
# single tox_data dataset, multiple exposure series
exp <- list("baz"=data.frame(t=0, c=0), "foo"=data.frame(t=0, c=1))
td <- tox_data(data.frame(time=0, obs=0, trial="foo"), exposure=exp)
cs <- td2cs(sc, td)
expect_equal(length(cs), 1)
expect_equal(cs[[1]]@scenario@param, sc@param) # use parameter list as a proxy, bc they do differ in exposure
expect_equal(cs[[1]]@scenario@times, sc@times) # use parameter list as a proxy, bc they do differ in exposure
expect_equal(cs[[1]]@data, td@data[[1]])
expect_equal(cs[[1]]@tag, "foo")
expect_equal(cs[[1]]@scenario@exposure@series, exp$foo)
# single tox_data dataset, rename output var
td <- tox_data(data.frame(time=0, foo=0))
cs <- td2cs(sc, td, output_var="bar")
expect_equal(length(cs), 1)
expect_true(all(is_caliset(cs)))
expect_equal(cs[[1]]@scenario, sc)
expect_equal(cs[[1]]@data, data.frame(time=0, bar=0))
## invalid arguments
sc <- Lemna_SETAC()
expect_error(td2cs(), "scenario. is missing")
expect_error(td2cs(list(sc)), "scenario. must be of length one")
expect_error(td2cs("foo"), "scenario. must be a scenario")
expect_error(td2cs(sc), "data. is missing")
expect_error(td2cs(sc, data="foo"), "data. must be a tox_data object")
expect_error(td2cs(sc, td, output_var=1), "must be a string")
expect_error(td2cs(sc, td, output_var=c("foo", "bar")), "must be of length one")
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.