tests/testthat/test_config.R

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)
})
thibautjombart/outbreaker2 documentation built on July 6, 2022, 11:10 p.m.