context("convert_phylogeny_to_alignment")
test_that("convert_phylogeny_to_alignment: basic", {
n_taxa <- 5
sequence_length <- 10
phylogeny <- ape::rcoal(n_taxa)
testit::assert(length(phylogeny$tip.label) == n_taxa)
alignment <- wiritttes::convert_phylogeny_to_alignment(
phylogeny = phylogeny,
sequence_length = sequence_length,
mutation_rate = 1
)
testthat::expect_true(class(alignment) == "DNAbin")
testthat::expect_true(nrow(alignment) == n_taxa)
testthat::expect_true(ncol(alignment) == sequence_length)
testthat::expect_true(ribir::is_alignment(alignment))
})
test_that("convert_phylogeny_to_alignment: abuse", {
expect_error(
convert_phylogeny_to_alignment(
phylogeny = "not a phylogeny",
sequence_length = 10,
mutation_rate = 1
),
"parameter 'phylogeny' must be a phylogeny" #nolint
)
expect_error(
convert_phylogeny_to_alignment(
phylogeny = ape::rcoal(5),
sequence_length = -1, # Must be positive
mutation_rate = 1
),
"parameter 'sequence_length' must be a non-zero and positive integer value" # nolint
)
expect_error(
convert_phylogeny_to_alignment(
phylogeny = ape::rcoal(5),
sequence_length = 10,
mutation_rate = -1 # Must be positive
),
"parameter 'mutation_rate' must be a non-zero and positive value" # nolint
)
set.seed(42)
p_with_extant <- ape::rtree(5)
testit::assert(geiger::is.extinct(p_with_extant))
testthat::expect_error(
convert_phylogeny_to_alignment(
phylogeny = p_with_extant,
sequence_length = 10, # Must be positive
mutation_rate = 1
),
"phylogeny must not contain extant species"
)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.