package test.beast.app.beauti; import java.io.File; import org.fest.swing.fixture.JTabbedPaneFixture; import org.junit.Test; public class SimpleTreePriorTest extends BeautiBase { /** check the standard tree priors are there and result in correct behaviour **/ @Test public void simpleTreePriorTest() throws Exception { warning("Load anolis.nex"); importAlignment("examples/nexus", new File("anolis.nex")); JTabbedPaneFixture f = beautiFrame.tabbedPane(); f.selectTab("Priors"); warning("Change to Coalescent - constant population"); beautiFrame.comboBox("TreeDistribution").selectItem("Coalescent Constant Population"); printBeautiState(f); assertStateEquals("Tree.t:anolis", "popSize.t:anolis"); assertOperatorsEqual("CoalescentConstantTreeScaler.t:anolis", "CoalescentConstantTreeRootScaler.t:anolis", "CoalescentConstantUniformOperator.t:anolis", "CoalescentConstantSubtreeSlide.t:anolis", "CoalescentConstantNarrow.t:anolis", "CoalescentConstantWide.t:anolis", "CoalescentConstantWilsonBalding.t:anolis", "PopSizeScaler.t:anolis"); assertPriorsEqual("CoalescentConstant.t:anolis", "PopSizePrior.t:anolis"); assertTraceLogEqual("posterior", "likelihood", "prior", "treeLikelihood.anolis", "TreeHeight.t:anolis", "popSize.t:anolis", "CoalescentConstant.t:anolis"); warning("Change to Coalescent - exponential population"); beautiFrame.comboBox("TreeDistribution").selectItem("Coalescent Exponential Population"); printBeautiState(f); assertStateEquals("Tree.t:anolis", "ePopSize.t:anolis", "growthRate.t:anolis"); assertOperatorsEqual("CoalescentExponentialTreeScaler.t:anolis", "CoalescentExponentialTreeRootScaler.t:anolis", "CoalescentExponentialUniformOperator.t:anolis", "CoalescentExponentialSubtreeSlide.t:anolis", "CoalescentExponentialNarrow.t:anolis", "CoalescentExponentialWide.t:anolis", "CoalescentExponentialWilsonBalding.t:anolis", "ePopSizeScaler.t:anolis", "GrowthRateRandomWalk.t:anolis"); assertPriorsEqual("CoalescentExponential.t:anolis", "ePopSizePrior.t:anolis", "GrowthRatePrior.t:anolis"); assertTraceLogEqual("posterior", "likelihood", "prior", "treeLikelihood.anolis", "TreeHeight.t:anolis", "CoalescentExponential.t:anolis", "ePopSize.t:anolis", "growthRate.t:anolis"); warning("Change to Coalescent - BPS"); beautiFrame.comboBox("TreeDistribution").selectItem("Coalescent Bayesian Skyline"); printBeautiState(f); assertStateEquals("Tree.t:anolis", "bPopSizes.t:anolis", "bGroupSizes.t:anolis"); assertOperatorsEqual("BayesianSkylineTreeScaler.t:anolis", "BayesianSkylineTreeRootScaler.t:anolis", "BayesianSkylineUniformOperator.t:anolis", "BayesianSkylineSubtreeSlide.t:anolis", "BayesianSkylineNarrow.t:anolis", "BayesianSkylineWide.t:anolis", "BayesianSkylineWilsonBalding.t:anolis", "popSizesScaler.t:anolis", "groupSizesDelta.t:anolis"); assertPriorsEqual("BayesianSkyline.t:anolis", "MarkovChainedPopSizes.t:anolis"); assertTraceLogEqual("posterior", "likelihood", "prior", "treeLikelihood.anolis", "TreeHeight.t:anolis", "BayesianSkyline.t:anolis", "bPopSizes.t:anolis", "bGroupSizes.t:anolis"); warning("Change to Yule"); beautiFrame.comboBox("TreeDistribution").selectItem("Yule Model"); printBeautiState(f); assertStateEquals("Tree.t:anolis", "birthRate.t:anolis"); assertOperatorsEqual("YuleModelTreeScaler.t:anolis", "YuleModelTreeRootScaler.t:anolis", "YuleModelUniformOperator.t:anolis", "YuleModelSubtreeSlide.t:anolis", "YuleModelNarrow.t:anolis", "YuleModelWide.t:anolis", "YuleModelWilsonBalding.t:anolis", "YuleBirthRateScaler.t:anolis"); assertPriorsEqual("YuleModel.t:anolis", "YuleBirthRatePrior.t:anolis"); assertTraceLogEqual("posterior", "likelihood", "prior", "treeLikelihood.anolis", "TreeHeight.t:anolis", "YuleModel.t:anolis", "birthRate.t:anolis"); warning("Change to Birth-Death"); beautiFrame.comboBox("TreeDistribution").selectItem("Birth Death Model"); printBeautiState(f); assertStateEquals("Tree.t:anolis", "BDBirthRate.t:anolis", "BDDeathRate.t:anolis"); assertOperatorsEqual("BirthDeathTreeScaler.t:anolis", "BirthDeathTreeRootScaler.t:anolis", "BirthDeathUniformOperator.t:anolis", "BirthDeathSubtreeSlide.t:anolis", "BirthDeathNarrow.t:anolis", "BirthDeathWide.t:anolis", "BirthDeathWilsonBalding.t:anolis", "BirthRateScaler.t:anolis", "DeathRateScaler.t:anolis"); assertPriorsEqual("BirthDeath.t:anolis", "BirthRatePrior.t:anolis", "DeathRatePrior.t:anolis"); assertTraceLogEqual("posterior", "likelihood", "prior", "treeLikelihood.anolis", "TreeHeight.t:anolis", "BirthDeath.t:anolis", "BDBirthRate.t:anolis", "BDDeathRate.t:anolis"); makeSureXMLParses(); } }