Switch to side-by-side view

--- 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)
+})