package test.beast.app.beauti; import java.io.File; import java.util.List; import org.fest.swing.data.TableCell; import org.fest.swing.fixture.JTabbedPaneFixture; import org.junit.Test; import beast.evolution.operators.DeltaExchangeOperator; import junit.framework.Assert; /** test how the FixedMeanRate flag interact with link/unlink **/ public class FixedMeanRateTest extends BeautiBase { @Test public void testFixedMeanRate() throws Exception { importAlignment("examples/nexus", new File("26.nex"), new File("29.nex")); beautiFrame.menuItemWithPath("Mode", "Automatic set fix mean substitution rate flag").click(); warning("Setting fixed mean rates"); JTabbedPaneFixture f = beautiFrame.tabbedPane(); f = f.selectTab("Site Model"); beautiFrame.checkBox("mutationRate.isEstimated").check(); beautiFrame.checkBox("FixMeanMutationRate").check(); warning("link/unlink site models"); f.selectTab("Partitions"); beautiFrame.table().selectCells(TableCell.row(0).column(0), TableCell.row(1).column(0)); beautiFrame.button("Link Site Models").click(); beautiFrame.button("Unlink Site Models").click(); //saveFile("/Users/remcobouckaert/tmp", "x.xml"); makeSureXMLParses(); DeltaExchangeOperator operator = (DeltaExchangeOperator) beauti.doc.pluginmap.get("FixMeanMutationRatesOperator"); int nrOfParameters = operator.parameterInput.get().size(); if(nrOfParameters != 2) { throw new IllegalArgumentException("Expected 2 parameters for deltaExchangeOperator, not " + nrOfParameters); } } @Test public void testFixedMeanRateSharedSiteModel() throws Exception { importAlignment("examples/nexus", new File("26.nex"), new File("29.nex"), new File("47.nex")); warning("Setting fixed mean rates"); JTabbedPaneFixture f = beautiFrame.tabbedPane(); f = f.selectTab("Site Model"); beautiFrame.checkBox("mutationRate.isEstimated").check(); //beautiFrame.checkBox("FixMeanMutationRate").check(); warning("link/unlink site models"); f.selectTab("Partitions"); beautiFrame.table().selectCells(TableCell.row(0).column(1), TableCell.row(1).column(1), TableCell.row(2).column(1)); beautiFrame.button("Link Site Models").click(); beautiFrame.button("Unlink Site Models").click(); DeltaExchangeOperator operator = (DeltaExchangeOperator) beauti.doc.pluginmap.get("FixMeanMutationRatesOperator"); int nrOfParameters = operator.parameterInput.get().size(); if (nrOfParameters != 3) { throw new IllegalArgumentException("Expected 3 parameters for deltaExchangeOperator, not " + nrOfParameters); } List<Integer> weights = operator.parameterWeightsInput.get().valuesInput.get(); Assert.assertEquals(weights.size(), 3); Assert.assertEquals(weights.get(0), (Integer)614); Assert.assertEquals(weights.get(1), (Integer)601); Assert.assertEquals(weights.get(2), (Integer)819); beautiFrame.table().selectCells(TableCell.row(0).column(1), TableCell.row(2).column(1)); beautiFrame.button("Link Site Models").click(); operator = (DeltaExchangeOperator) beauti.doc.pluginmap.get("FixMeanMutationRatesOperator"); nrOfParameters = operator.parameterInput.get().size(); //SiteModelInputEditor.customConnector(doc); if (nrOfParameters != 2) { throw new IllegalArgumentException("Expected 2 parameters for deltaExchangeOperator, not " + nrOfParameters); } weights = operator.parameterWeightsInput.get().valuesInput.get(); Assert.assertEquals(weights.size(), 2); Assert.assertEquals(weights.get(0), (Integer)(614 + 819)); Assert.assertEquals(weights.get(1), (Integer)601); makeSureXMLParses(); } }