test_that("expected_number_junctions", { if (requireNamespace("junctions")) { test_expected_junction_number <- function(pop_size, run_time, morgan, replicates) { found <- c() for (r in 1:replicates) { vx <- simulate_admixture(module = ancestry_module(morgan = morgan), pop_size = pop_size, total_runtime = run_time) junct <- calculate_dist_junctions(vx$population) found <- c(found, mean(junct)) } if (requireNamespace("junctions")) { expected <- junctions::number_of_junctions(N = pop_size, H_0 = 0.5, C = morgan, t = run_time) testthat::expect_equal(mean(found), expected, tolerance = 1) } } used_pop_size <- 100 test_expected_junction_number(pop_size = used_pop_size, run_time = 20, morgan = 1, replicates = 100) test_expected_junction_number(pop_size = used_pop_size, run_time = 20, morgan = 0.5, replicates = 100) test_expected_junction_number(pop_size = used_pop_size, run_time = 20, morgan = 3, replicates = 100) vx <- simulate_admixture(pop_size = used_pop_size, total_runtime = 5) testthat::expect_silent(plot_dist_junctions(vx$population)) } })