context("scrm")
test_that("parsing arguments works", {
expect_error(scrm("10 -t 5"))
expect_error(scrm("10 1 -t"))
scrm("5 2 -t 5")
scrm("5 1 -t 5 -r 10 100")
scrm("5 1 -T")
scrm("5 1 -I 2 2 3 1.5 -r 5 100 -L")
expect_error(scrm("10 1 -oSFS"))
scrm("10 1 -oSFS -t 2")
})
test_that("runs a reproducible", {
set.seed(119)
res1 <- scrm("10 1 -r 1 100 -t 2")
set.seed(119)
res2 <- scrm("10 1 -r 1 100 -t 2")
expect_equal(res1, res2)
})
test_that("warning is given when using -seed", {
expect_warning(scrm("10 1 -seed 17 -L"))
expect_warning(scrm("10 1 -seed 1 2 3 -L"))
})
test_that("writing into a file works", {
file <- tempfile("scrm_")
scrm("10 1 -r 10 100 -t 5", file = file)
expect_true(file.exists(file))
output <- scan(file, what = "character", sep = "\n", quiet = TRUE)
expect_equal(output[1], "scrm 10 1 -r 10 100 -t 5")
expect_equal(output[2], "//")
expect_true(output[3] != "")
unlink(file)
# Test relative path
work_dir <- getwd()
setwd(tempdir())
file <- "scrm_test_file"
scrm("10 1 -t 5", file = file)
expect_true(file.exists(file))
expect_true(file.exists(paste(tempdir(), file, sep = "/")))
unlink(file)
# Test with "//" instead of "/"
file <- "scrm_test_dir//scrm_test_file"
expect_error(scrm("10 1 -t 5", file = file))
dir.create("scrm_test_dir")
scrm("10 1 -t 5", file = file)
expect_true(file.exists(file))
expect_true(file.exists(paste(tempdir(), file, sep = "/")))
# Test with "\" instead of "/"
file <- "scrm_test_dir\\scrm_test_file2"
scrm("10 1 -t 5", file = file)
expect_true(file.exists(file))
expect_true(file.exists(paste(tempdir(), file, sep = "/")))
unlink("scrm_test_dir", recursive = TRUE)
setwd(work_dir)
})
test_that("-m & -em are available", {
sum_stats <- scrm("10 1 -I 2 6 4 -em 1.0 2 1 0.5 -em 1.0 1 2 0.7 -T")
expect_equal(length(sum_stats$trees), 1)
sum_stats <- scrm("10 1 -I 2 6 4 -m 2 1 0.5 -m 1 2 0.7 -T")
expect_equal(length(sum_stats$trees), 1)
})
test_that("printing help & verison information works", {
for (version in list(scrm("-v"), scrm("--version"))) {
expect_that(version, is_a("list"))
expect_that(version$version, is_a("character"))
}
expect_error(scrm("-h"))
expect_error(scrm("--help"))
})
test_that("simulation many loci works", {
res <- scrm("10 10000 -t 1")
expect_equal(length(res$seg_sites), 10000)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.