context("Test outbreaker config")
## test settings ##
test_that("test: settings are processed fine", {
## skip on CRAN
skip_on_cran()
## get data
x <- fake_outbreak
dat <- outbreaker_data(dates = x$sample, dna = x$dna, w_dens = x$w)
dat_nodna <- dat
dat_nodna$D <- dat_nodna$dna <- NULL
alpha <- rep(1, length(x$ances))
## check output
expect_is(create_config(), "list")
expect_is(create_config(), "outbreaker_config")
expect_is(create_config(data = dat), "list")
expect_is(create_config(data = dat), "outbreaker_config")
expect_equal(create_config(init_tree="star", data = dat)$init_alpha,
c(NA, rep(1,29)))
expect_equal(create_config(init_tree = alpha)$init_tree,
create_config(init_tree = alpha)$init_alpha)
expect_equal(length(create_config(init_tree="random",data = dat)$init_alpha), dat$N)
expect_equal(sort(unique(create_config(data = dat, init_kappa = 1:2)$init_kappa)), 1:2)
expect_error(create_config(uknownarg = 123),
"Additional invalid options: uknownarg")
expect_error(create_config(init_tree="wrongtreeinit"),
"should be one of")
expect_error(create_config(init_mu=-5),
"init_mu is negative")
expect_error(create_config(n_iter = 0),
"n_iter is smaller than 2")
expect_error(create_config(sample_every = 0),
"sample_every is smaller than 1")
expect_error(create_config(init_tree = 1:5, data = dat),
"inconvenient length for init_alpha")
expect_message(create_config(init_tree="seqTrack", data = dat_nodna),
"Can't use seqTrack initialization with missing DNA sequences; using a star-like tree")
expect_warning(create_config(init_tree = rep(-1,dat$N), data = dat),
"some initial ancestries refer to unknown cases")
expect_false(create_config(data = dat_nodna, move_mu = TRUE)$move_mu)
expect_error(create_config(pb = 'TRUE'),
"pb must be a logical")
})
test_that("validation does not alter valide objects", {
c1 <- create_config()
c2 <- create_config(c1)
expect_identical(c1, c2)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.