Search in sources :

Example 1 with UniformOperator

use of beast.evolution.operators.UniformOperator in project beast2 by CompEvol.

the class UniformIntegerOperatorTest method testIntegerParameterBound.

public void testIntegerParameterBound() {
    try {
        // 4 vaules {0, 1, 2, 3}
        count = new int[dimension][4];
        IntegerParameter parameter = new IntegerParameter(new Integer[] { 1, 0, 3 });
        parameter.setLower(0);
        parameter.setUpper(3);
        State state = new State();
        state.initByName("stateNode", parameter);
        state.initialise();
        UniformOperator uniformOperator = new UniformOperator();
        uniformOperator.initByName("parameter", parameter, "howMany", 3, "weight", 1.0);
        for (int i = 0; i < 400; i++) {
            uniformOperator.proposal();
            Integer[] values = parameter.getValues();
            for (int k = 0; k < values.length; k++) {
                int j = values[k];
                count[k][j] += 1;
            }
        }
        System.out.println("Integer distributions lower = 0, upper = 3");
        for (int j = 0; j < count.length; j++) {
            System.out.println("x[" + j + "] = " + Arrays.toString(count[j]));
        }
        assertTrue("Expected count[0][0-3] > 0", count[0][0] > 0 && count[0][1] > 0 && count[0][2] > 0 && count[0][3] > 0);
        assertTrue("Expected count[1][0-3] > 0", count[1][0] > 0 && count[1][1] > 0 && count[1][2] > 0 && count[1][3] > 0);
        assertTrue("Expected count[2][0-3] > 0", count[2][0] > 0 && count[2][1] > 0 && count[2][2] > 0 && count[2][3] > 0);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
Also used : IntegerParameter(beast.core.parameter.IntegerParameter) State(beast.core.State) UniformOperator(beast.evolution.operators.UniformOperator)

Example 2 with UniformOperator

use of beast.evolution.operators.UniformOperator in project beast2 by CompEvol.

the class UniformIntegerOperatorTest method testParameterBound.

public void testParameterBound() {
    try {
        // 4 vaules {0, 1, 2, 3}
        count = new int[dimension][4];
        RealParameter parameter = new RealParameter(new Double[] { 1.0, 0.0, 2.0 });
        parameter.setLower(0.0);
        parameter.setUpper(3.0);
        State state = new State();
        state.initByName("stateNode", parameter);
        state.initialise();
        UniformOperator uniformOperator = new UniformOperator();
        uniformOperator.initByName("parameter", parameter, "howMany", 3, "weight", 1.0);
        for (int i = 0; i < 400; i++) {
            uniformOperator.proposal();
            Double[] values = parameter.getValues();
            for (int k = 0; k < values.length; k++) {
                int j = (int) (double) values[k];
                count[k][j] += 1;
            }
        }
        System.out.println("Discretized real distributions lower = 0.0, upper = 3.0");
        for (int j = 0; j < count.length; j++) {
            System.out.println("x[" + j + "] = " + Arrays.toString(count[j]));
        }
        assertTrue("Expected count[0][0-2] > 0 && count[0][3] == 0", (count[0][0] > 0) && (count[0][1] > 0) && (count[0][2] > 0) && (count[0][3] == 0));
        assertTrue("Expected count[1][0-2] > 0 && count[1][3] == 0", (count[1][0] > 0) && (count[1][1] > 0) && (count[1][2] > 0) && (count[1][3] == 0));
        assertTrue("Expected count[2][0-2] > 0 && count[2][3] == 0", (count[2][0] > 0) && (count[2][1] > 0) && (count[2][2] > 0) && (count[2][3] == 0));
    } catch (Exception e) {
        e.printStackTrace();
    }
}
Also used : State(beast.core.State) RealParameter(beast.core.parameter.RealParameter) UniformOperator(beast.evolution.operators.UniformOperator)

Aggregations

State (beast.core.State)2 UniformOperator (beast.evolution.operators.UniformOperator)2 IntegerParameter (beast.core.parameter.IntegerParameter)1 RealParameter (beast.core.parameter.RealParameter)1