skip_if(!is_slendr_env_present())
init_env(quiet = TRUE)
pop <- population("pop", time = 1, N = 10)
model <- compile_model(pop, generation_time = 1, direction = "forward", simulation_length = 10)
test_that("slim() returns a tree-sequence object by default", {
result <- slim(model, sequence_length = 1, recombination_rate = 0)
expect_s3_class(result, "slendr_ts")
expect_s3_class(result, "tskit.trees.TreeSequence")
})
test_that("msprime() returns a tree-sequence object by default", {
result <- msprime(model, sequence_length = 1, recombination_rate = 0, random_seed = 123)
expect_s3_class(result, "slendr_ts")
expect_s3_class(result, "tskit.trees.TreeSequence")
})
test_that("if `path =` is given, msprime returns it back and saves a tree-sequence file", {
path <- normalizePath(tempfile(), winslash = "/", mustWork = FALSE)
result1 <- msprime(model, sequence_length = 1, recombination_rate = 0, path = path, random_seed = 123)
ts_path <- file.path(path, "msprime.trees")
expect_true(file.exists(ts_path))
result2 <- msprime(model, sequence_length = 1, recombination_rate = 0, random_seed = 123)
ts <- ts_read(file = ts_path, model)
expect_equal(ts_nodes(ts), ts_nodes(result2))
})
test_that("SLiMgui does not start in an interactive session", {
skip_if(!interactive())
expect_error(slim(model, sequence_length = 1, recombination_rate = 0),
"SLiMgui can only be run from an interactive R session")
})
test_that("slendr model directory must be present", {
broken_model <- model
broken_model$path <- "nope"
expect_error(slim(broken_model, sequence_length = 1, recombination_rate = 0),
"Model directory 'nope' does not exist")
})
test_that("slendr model directory must be present", {
broken_path <- "nope"
expect_error(
slim(model, sequence_length = 1, recombination_rate = 0, slim_path = broken_path),
paste0("SLiM binary not found at ", broken_path)
)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.