context("Function merge alpha grids")
###############################################################################
test_that("Merge alpha grids", {
testthat::skip_on_cran()
data(monkeys)
## First fit with coarse grid
expect_message(expect_warning(
res1 <- PhyloEM(Y_data = monkeys$dat,
phylo = monkeys$phy,
process = "scOU",
random.root = TRUE,
stationary.root = TRUE,
K_max = 10,
alpha = c(0.2, 0.3),
parallel_alpha = FALSE,
progress.bar = FALSE),
"Models selected by DDSE and Djump are different"),
"There are some equivalent solutions")
## Second fit with finner grid
expect_message(
res2 <- PhyloEM(Y_data = monkeys$dat,
phylo = monkeys$phy,
process = "scOU",
random.root = TRUE,
stationary.root = TRUE,
K_max = 10,
alpha = c(0.22, 0.24),
parallel_alpha = FALSE,
progress.bar = FALSE),
"There are some equivalent solutions")
## Third fit with redundancies
expect_message(
res3 <- PhyloEM(Y_data = monkeys$dat,
phylo = monkeys$phy,
process = "scOU",
random.root = TRUE,
stationary.root = TRUE,
K_max = 10,
alpha = c(0.26, 0.3),
parallel_alpha = FALSE,
progress.bar = FALSE),
"There are some equivalent solutions")
## merge results
expect_message(expect_warning(
res_merge <- merge_alpha_grids(res1, res2, res3),
"Models selected by DDSE and Djump are different"),
"There are some equivalent solutions")
## large fit all alpha
expect_message(expect_warning(
resall <- PhyloEM(Y_data = monkeys$dat,
phylo = monkeys$phy,
process = "scOU",
random.root = TRUE,
stationary.root = TRUE,
K_max = 10,
alpha = c(0.2, 0.22, 0.24, 0.26, 0.3),
parallel_alpha = FALSE,
progress.bar = FALSE),
"Models selected by DDSE and Djump are different"),
"There are some equivalent solutions")
## compare
compare_ignore_time <- function(a, b) {
a$results_summary$time <- 0
a$DDSE_BM1$results_summary$time <- 0
a$Djump_BM1$results_summary$time <- 0
a$BGHml$results_summary$time <- 0
a$BGHmlraw$results_summary$time <- 0
a$BGHlsq$results_summary$time <- 0
a$BGHlsqraw$results_summary$time <- 0
b$results_summary$time <- 0
b$DDSE_BM1$results_summary$time <- 0
b$Djump_BM1$results_summary$time <- 0
b$BGHml$results_summary$time <- 0
b$BGHmlraw$results_summary$time <- 0
b$BGHlsq$results_summary$time <- 0
b$BGHlsqraw$results_summary$time <- 0
expect_equal(a, b)
}
compare_ignore_time(resall$alpha_max, res_merge$alpha_max)
compare_ignore_time(resall$alpha_min, res_merge$alpha_min)
compare_ignore_time(resall$alpha_min_raw, res_merge$alpha_min_raw)
})
###############################################################################
test_that("Merge alpha grids - errors", {
testthat::skip_on_cran()
data(monkeys)
## First fit with coarse grid
expect_message(expect_warning(
res1 <- PhyloEM(Y_data = monkeys$dat,
phylo = monkeys$phy,
process = "scOU",
random.root = TRUE,
stationary.root = TRUE,
K_max = 10,
alpha = c(0.2, 0.3),
parallel_alpha = FALSE,
progress.bar = FALSE),
"Models selected by DDSE and Djump are different"),
"There are some equivalent solutions")
## Second fit with finner grid
monkeys$dat[1, 10] <- 0.2
expect_message(
res2 <- PhyloEM(Y_data = monkeys$dat,
phylo = monkeys$phy,
process = "scOU",
random.root = TRUE,
stationary.root = TRUE,
K_max = 10,
alpha = c(0.22, 0.24),
parallel_alpha = FALSE,
progress.bar = FALSE),
"There are some equivalent solutions")
expect_error(merge_alpha_grids(), "There should be at least")
expect_equal(merge_alpha_grids(res1), res1)
expect_error(merge_alpha_grids(res1, res2), "Component Y_data of PhyloEM results number 1 and number 2 are different.")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.