--- a +++ b/tests/testthat/test_config.R @@ -0,0 +1,58 @@ +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) +})