Search in sources :

Example 1 with BooleanParameterList

use of beast.core.parameter.BooleanParameterList in project beast2 by CompEvol.

the class BooleanParameterListTest method test1.

@Test
public void test1() throws Exception {
    BooleanParameterList parameterList = new BooleanParameterList();
    // Parameters with which to initialise list
    BooleanParameter param1 = new BooleanParameter();
    param1.initByName("value", "true false true");
    BooleanParameter param2 = new BooleanParameter();
    param2.initByName("value", "false true false");
    // Initialise parameter list
    parameterList.initByName("dimension", 3, "initialParam", param1, "initialParam", param2);
    // Create dummy state to allow statenode editing
    State state = new State();
    state.initByName("stateNode", parameterList);
    state.initialise();
    // Test parameter value modification
    parameterList.get(0).setValue(0, false);
    // Test parameter creation and modification
    Parameter<Boolean> newParam = parameterList.addNewParam();
    newParam.setValue(0, true);
    newParam.setValue(1, true);
    newParam.setValue(2, true);
    assertTrue(parameterList.get(0).getValue(0) == false);
    assertTrue(parameterList.get(0).getValue(1) == false);
    assertTrue(parameterList.get(0).getValue(2) == true);
    assertTrue(parameterList.get(0).getKey() == 0);
    assertTrue(parameterList.get(1).getValue(0) == false);
    assertTrue(parameterList.get(1).getValue(1) == true);
    assertTrue(parameterList.get(1).getValue(2) == false);
    assertTrue(parameterList.get(1).getKey() == 1);
    assertTrue(parameterList.get(2).getValue(0) == true);
    assertTrue(parameterList.get(2).getValue(1) == true);
    assertTrue(parameterList.get(2).getValue(2) == true);
    assertTrue(parameterList.get(2).getKey() == 2);
    assertTrue(parameterList.size() == 3);
    parameterList.remove(1);
    newParam = parameterList.addNewParam();
    newParam.setValue(0, false);
    newParam.setValue(1, false);
    newParam.setValue(2, false);
    assertTrue(parameterList.get(0).getValue(0) == false);
    assertTrue(parameterList.get(0).getValue(1) == false);
    assertTrue(parameterList.get(0).getValue(2) == true);
    assertTrue(parameterList.get(0).getKey() == 0);
    assertTrue(parameterList.get(1).getValue(0) == true);
    assertTrue(parameterList.get(1).getValue(1) == true);
    assertTrue(parameterList.get(1).getValue(2) == true);
    assertTrue(parameterList.get(1).getKey() == 2);
    assertTrue(parameterList.get(2).getValue(0) == false);
    assertTrue(parameterList.get(2).getValue(1) == false);
    assertTrue(parameterList.get(2).getValue(2) == false);
    assertTrue(parameterList.get(2).getKey() == 1);
    assertTrue(parameterList.size() == 3);
    // Test state restore
    parameterList.restore();
    assertTrue(parameterList.get(0).getValue(0) == true);
    assertTrue(parameterList.get(0).getValue(1) == false);
    assertTrue(parameterList.get(0).getValue(2) == true);
    assertTrue(parameterList.get(0).getKey() == 0);
    assertTrue(parameterList.get(1).getValue(0) == false);
    assertTrue(parameterList.get(1).getValue(1) == true);
    assertTrue(parameterList.get(1).getValue(2) == false);
    assertTrue(parameterList.get(1).getKey() == 1);
    assertTrue(parameterList.size() == 2);
    // Test serialization
    parameterList.addNewParam(newParam);
    String xmlStr = parameterList.toXML();
    assertEquals(xmlStr, "<statenode id='null'>" + "Dimension: [3, 1], " + "Bounds: [false,true], " + "AvailableKeys: [], " + "NextKey: 3, " + "Parameters: [[true,false,true],[false,true,false],[false,false,false]], " + "ParameterKeys: [0,1,2]" + "</statenode>\n");
    // Test deserialization
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    Document doc = factory.newDocumentBuilder().parse(new ByteArrayInputStream(xmlStr.getBytes()));
    doc.normalize();
    NodeList nodes = doc.getElementsByTagName("*");
    org.w3c.dom.Node docNode = nodes.item(0);
    BooleanParameterList newParameterList = new BooleanParameterList();
    newParameterList.initAndValidate();
    newParameterList.fromXML(docNode);
    assertTrue(newParameterList.get(0).getValue(0) == true);
    assertTrue(newParameterList.get(0).getValue(1) == false);
    assertTrue(newParameterList.get(0).getValue(2) == true);
    assertTrue(newParameterList.get(0).getKey() == 0);
    assertTrue(newParameterList.get(1).getValue(0) == false);
    assertTrue(newParameterList.get(1).getValue(1) == true);
    assertTrue(newParameterList.get(1).getValue(2) == false);
    assertTrue(newParameterList.get(1).getKey() == 1);
    assertTrue(newParameterList.get(2).getValue(0) == false);
    assertTrue(newParameterList.get(2).getValue(1) == false);
    assertTrue(newParameterList.get(2).getValue(2) == false);
    assertTrue(newParameterList.get(2).getKey() == 2);
    assertTrue(newParameterList.size() == 3);
}
Also used : BooleanParameterList(beast.core.parameter.BooleanParameterList) DocumentBuilderFactory(javax.xml.parsers.DocumentBuilderFactory) NodeList(org.w3c.dom.NodeList) Document(org.w3c.dom.Document) BooleanParameter(beast.core.parameter.BooleanParameter) ByteArrayInputStream(java.io.ByteArrayInputStream) State(beast.core.State) Test(org.junit.Test)

Aggregations

State (beast.core.State)1 BooleanParameter (beast.core.parameter.BooleanParameter)1 BooleanParameterList (beast.core.parameter.BooleanParameterList)1 ByteArrayInputStream (java.io.ByteArrayInputStream)1 DocumentBuilderFactory (javax.xml.parsers.DocumentBuilderFactory)1 Test (org.junit.Test)1 Document (org.w3c.dom.Document)1 NodeList (org.w3c.dom.NodeList)1