Search in sources :

Example 1 with Network

use of org.drools.beliefs.bayes.model.Network in project drools by kiegroup.

the class ParserTest method testSprinklerLoadBif.

@Test
public void testSprinklerLoadBif() {
    Bif bif = (Bif) XmlBifParser.loadBif(ParserTest.class.getResource("Garden.xmlbif"));
    Network network = bif.getNetwork();
    assertEquals("Garden", network.getName());
    assertEquals("package = org.drools.beliefs.bayes.integration", network.getProperties().get(0));
    Map<String, Variable> varMap = varToMap(network.getVariables());
    assertEquals(4, varMap.size());
    Variable var = varMap.get("WetGrass");
    assertEquals("WetGrass", var.getName());
    assertEquals(2, var.getOutComes().size());
    assertEquals(var.getOutComes(), Arrays.asList(new String[] { "false", "true" }));
    assertEquals("position = (0,10)", var.getProperties().get(0));
    var = varMap.get("Cloudy");
    assertEquals("Cloudy", var.getName());
    assertEquals(2, var.getOutComes().size());
    assertEquals(var.getOutComes(), Arrays.asList(new String[] { "false", "true" }));
    assertEquals("position = (0,-10)", var.getProperties().get(0));
    var = varMap.get("Sprinkler");
    assertEquals("Sprinkler", var.getName());
    assertEquals(2, var.getOutComes().size());
    assertEquals(var.getOutComes(), Arrays.asList(new String[] { "false", "true" }));
    assertEquals("position = (13,0)", var.getProperties().get(0));
    var = varMap.get("Rain");
    assertEquals("Rain", var.getName());
    assertEquals(2, var.getOutComes().size());
    assertEquals(var.getOutComes(), Arrays.asList(new String[] { "false", "true" }));
    assertEquals("position = (-12,0)", var.getProperties().get(0));
    Map<String, Definition> defMap = defToMap(network.getDefinitions());
    assertEquals(4, defMap.size());
    Definition def = defMap.get("WetGrass");
    assertEquals("WetGrass", def.getName());
    assertEquals(2, def.getGiven().size());
    assertEquals(def.getGiven(), Arrays.asList(new String[] { "Sprinkler", "Rain" }));
    assertEquals("1.0 0.0 0.1 0.9 0.1 0.9 0.01 0.99", def.getProbabilities());
    def = defMap.get("Cloudy");
    assertEquals("Cloudy", def.getName());
    assertNull(def.getGiven());
    assertEquals("0.5 0.5", def.getProbabilities().trim());
    def = defMap.get("Sprinkler");
    assertEquals("Sprinkler", def.getName());
    assertEquals(1, def.getGiven().size());
    assertEquals("Cloudy", def.getGiven().get(0));
    assertEquals("0.5 0.5 0.9 0.1", def.getProbabilities().trim());
    def = defMap.get("Rain");
    assertEquals("Rain", def.getName());
    assertNull(def.getGiven());
    assertEquals("0.5 0.5", def.getProbabilities().trim());
}
Also used : Variable(org.drools.beliefs.bayes.model.Variable) BayesVariable(org.drools.beliefs.bayes.BayesVariable) BayesNetwork(org.drools.beliefs.bayes.BayesNetwork) Network(org.drools.beliefs.bayes.model.Network) Definition(org.drools.beliefs.bayes.model.Definition) Bif(org.drools.beliefs.bayes.model.Bif) Test(org.junit.Test)

Aggregations

BayesNetwork (org.drools.beliefs.bayes.BayesNetwork)1 BayesVariable (org.drools.beliefs.bayes.BayesVariable)1 Bif (org.drools.beliefs.bayes.model.Bif)1 Definition (org.drools.beliefs.bayes.model.Definition)1 Network (org.drools.beliefs.bayes.model.Network)1 Variable (org.drools.beliefs.bayes.model.Variable)1 Test (org.junit.Test)1