Nothing
test_that("Roguehalla() handles odd input", {
trees <- list(ape::read.tree(text = "(a, (b, (c, (d, (e, X)))));"),
ape::read.tree(text = "((a, X), (b, (c, (d, e))));"))
ic <- ConsensusInfo(lapply(trees, TreeTools::DropTip, "X"), "p", p = 0.5)
expect_equal(data.frame(num = 0:1,
taxNum = c(NA_character_, "6"),
taxon = c(NA_character_, "X"),
rawImprovement = c(NA, ic),
IC = c(0, ic),
stringsAsFactors = FALSE),
Roguehalla(trees))
expect_error(RogueTaxa(trees, info = "Error"))
expect_error(RogueTaxa(trees, return = "Error"))
expect_equal(data.frame(num = 0,
taxNum = NA_character_,
taxon = NA_character_,
rawImprovement = NA_real_,
IC = SplitwiseInfo(trees[[1]]),
stringsAsFactors = FALSE),
Roguehalla(trees[[1]]))
expect_error(Roguehalla(trees = "Error"))
})
test_that("QuickRogue()", {
expect_error(QuickRogue("Error"))
trees <- TreeTools::AddTipEverywhere(TreeTools::BalancedTree(8), "Rogue")
expect_equal(2L, nrow(QuickRogue(trees)))
expect_equal(1L, nrow(QuickRogue(trees, neverDrop = c("t2", "Rogue"))))
expect_equal(2L, nrow(QuickRogue(trees, neverDrop = "t1")))
expect_equal(QuickRogue(trees, "phy"), QuickRogue(trees, "spic"))
expect_equal(QuickRogue(trees, "phy", p = 1.0),
QuickRogue(trees, "spic", p = 1.0))
expect_equal(data.frame(num = 0,
taxNum = NA_character_,
taxon = NA_character_,
rawImprovement = NA_real_,
IC = SplitwiseInfo(trees[[1]]),
stringsAsFactors = FALSE),
QuickRogue(trees[[1]]))
expect_equal(ClusteringInfo(trees[[1]]),
QuickRogue(trees[[1]], info = "scic")[, "IC"])
expect_equal(SplitwiseInfo(trees[[1]]),
QuickRogue(trees[[1]], info = "spic")[, "IC"])
expect_equal(0, QuickRogue(trees, fullSeq = TRUE)[10, "IC"])
expect_false("Rogue" %in%
QuickRogue(trees, fullSeq = TRUE, neverDrop = "Rogue")$taxon)
})
test_that("Rogues found", {
library("TreeTools", quietly = TRUE)
trees <- AddTipEverywhere(BalancedTree(8), "Rogue")
instab <- TipInstability(trees)
expect_equal("Rogue", names(which.max(instab)))
ci <- TipVolatility(trees)
expect_equal("Rogue", names(which.max(ci)))
dists <- TreeDist::PhylogeneticInfoDistance(trees, normalize = TRUE)
expect_equal(mean(dists) - 0, max(ci))
expect_equal(8L, NTip(RogueTaxa(trees, return = "TREE")))
expect_equal(9L, NTip(RogueTaxa(trees, neverDrop = "Rogue", return = "Tree")))
expect_equal(8L, NTip(RogueTaxa(trees, neverDrop = "t1", return = "Tree")))
expect_equal(8L, NTip(RogueTaxa(trees, info = "fsp", return = "tr")))
expect_equal(2L, nrow(Roguehalla(trees, 1)))
expect_equal(8L, NTip(RogueTaxa(trees, info = "sp", return = "tr")))
trees[] <- lapply(trees, AddTip, "Rogue", "Rogue2")
ci <- TipVolatility(trees)
expect_equal(c("Rogue", "Rogue2"), names(ci[ci == max(ci)]))
# Interesting aside: Majority rule consensus favours balanced splits!
bc <- RogueTaxa(trees, info = "fsp", return = "TR")
expect_equal(10L, NTip(bc))
expect_equal(9L, bc$Nnode)
bc <- RogueTaxa(trees, info = "fsc", return = "TR")
expect_equal(10L, NTip(bc))
expect_equal(9L, bc$Nnode)
bc <- RogueTaxa(trees[-11], info = "fsp", return = "TR")
expect_equal(8L, NTip(bc))
expect_equal(7L, bc$Nnode)
expect_equal(1L, nrow(RogueTaxa(trees[-11], drop = 1, "r")))
expect_equal(1L, nrow(RogueTaxa(trees[-11], drop = 1, "phy")))
expect_equal(1L, nrow(RogueTaxa(trees[-11], drop = 1, "clu")))
expect_equal(2L, nrow(RogueTaxa(trees[-11], drop = 2, "r")))
expect_equal(2L, nrow(RogueTaxa(trees[-11], drop = 2, "sp")))
expect_equal(2L, nrow(RogueTaxa(trees[-11], drop = 2, "sci")))
# Check trees are created
expect_equal(8L, NTip(RogueTaxa(trees[-11], dr = 2, ret = "Tr", "r")))
expect_equal(8L, NTip(RogueTaxa(trees[-11], dr = 2, ret = "Tr", "sp")))
expect_equal(8L, NTip(RogueTaxa(trees[-11], dr = 2, ret = "Tr", "sci")))
})
test_that("QuickRogue() restores leaves", {
trees150 <- ape::read.tree(system.file("example/150.bs", package = "Rogue"))
expect_equal(nrow(QuickRogue(trees150[80:89])), 5)
})
#
# test_that("Benchmarking", {
# skip_if(TRUE)
#
# trees <- read.tree(paste0("c:/research/r/rogue-ms/data-raw/simulations/1/all.bs"))
# profvis::profvis(Roguehalla(trees[1:5], dropset = 1))
# })
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.