public void testMultiplyBy () { FactorGraph fg = new FactorGraph (); fg.multiplyBy (tbl1); fg.multiplyBy (tbl2); assertEquals (2, fg.factors ().size()); assertTrue (fg.factors ().contains (tbl1)); assertTrue (fg.factors ().contains (tbl2)); assertEquals (3, fg.numVariables ()); assertTrue (fg.variablesSet ().contains (vars[0])); assertTrue (fg.variablesSet ().contains (vars[1])); assertTrue (fg.variablesSet ().contains (vars[2])); }
public void testMultiplyBy () { FactorGraph fg = new FactorGraph (); fg.multiplyBy (tbl1); fg.multiplyBy (tbl2); assertEquals (2, fg.factors ().size()); assertTrue (fg.factors ().contains (tbl1)); assertTrue (fg.factors ().contains (tbl2)); assertEquals (3, fg.numVariables ()); assertTrue (fg.variablesSet ().contains (vars[0])); assertTrue (fg.variablesSet ().contains (vars[1])); assertTrue (fg.variablesSet ().contains (vars[2])); }
public void testMultiply () { FactorGraph fg = new FactorGraph (); fg.multiplyBy (tbl1); fg.multiplyBy (tbl2); FactorGraph fg2 = (FactorGraph) fg.multiply (tbl3); assertEquals (2, fg.factors ().size()); assertEquals (3, fg2.factors ().size()); assertTrue (!fg.factors ().contains (tbl3)); assertTrue (fg2.factors ().contains (tbl3)); }
public void testMultiply () { FactorGraph fg = new FactorGraph (); fg.multiplyBy (tbl1); fg.multiplyBy (tbl2); FactorGraph fg2 = (FactorGraph) fg.multiply (tbl3); assertEquals (2, fg.factors ().size()); assertEquals (3, fg2.factors ().size()); assertTrue (!fg.factors ().contains (tbl3)); assertTrue (fg2.factors ().contains (tbl3)); }
public void testAsTable2 () { Factor f1 = new TableFactor (vars[0], new double[] { 0.6, 0.4 }); Factor f2 = new ConstantFactor (2.0); FactorGraph fg = new FactorGraph (new Factor[] { f1, f2 }); AbstractTableFactor tbl = fg.asTable (); assertTrue (Arrays.equals(new double[] { 0.6 * 2.0, 0.4 * 2.0 }, tbl.toValueArray ())); }
public void testAsTable2 () { Factor f1 = new TableFactor (vars[0], new double[] { 0.6, 0.4 }); Factor f2 = new ConstantFactor (2.0); FactorGraph fg = new FactorGraph (new Factor[] { f1, f2 }); AbstractTableFactor tbl = fg.asTable (); assertTrue (Arrays.equals(new double[] { 0.6 * 2.0, 0.4 * 2.0 }, tbl.toValueArray ())); }
public void testAllFactorsOf2 () throws IOException { Variable x1 = new Variable (2); Variable x2 = new Variable (2); FactorGraph fg = new FactorGraph (); fg.addFactor (new TableFactor (x1)); fg.addFactor (new TableFactor (x2)); fg.addFactor (new TableFactor (new Variable[] { x1, x2 })); List lst = fg.allFactorsOf (x1); assertEquals (1, lst.size ()); for (Iterator it = lst.iterator (); it.hasNext ();) { Factor f = (Factor) it.next (); assertEquals (1, f.varSet().size()); assertTrue (f.varSet ().contains (x1)); } HashVarSet vs = new HashVarSet (new Variable[]{x1, x2}); List lst2 = fg.allFactorsOf (vs); assertEquals (1, lst2.size ()); Factor f = (Factor) lst2.get (0); assertTrue (f.varSet ().equals (vs)); }
public void testAllFactorsOf2 () throws IOException { Variable x1 = new Variable (2); Variable x2 = new Variable (2); FactorGraph fg = new FactorGraph (); fg.addFactor (new TableFactor (x1)); fg.addFactor (new TableFactor (x2)); fg.addFactor (new TableFactor (new Variable[] { x1, x2 })); List lst = fg.allFactorsOf (x1); assertEquals (1, lst.size ()); for (Iterator it = lst.iterator (); it.hasNext ();) { Factor f = (Factor) it.next (); assertEquals (1, f.varSet().size()); assertTrue (f.varSet ().contains (x1)); } HashVarSet vs = new HashVarSet (new Variable[]{x1, x2}); List lst2 = fg.allFactorsOf (vs); assertEquals (1, lst2.size ()); Factor f = (Factor) lst2.get (0); assertTrue (f.varSet ().equals (vs)); }
public void testMarginalize () { FactorGraph fg = new FactorGraph (); fg.multiplyBy (tbl1); fg.multiplyBy (tbl2); Factor marg = fg.marginalize (vars[1]); Factor expected = new TableFactor (vars[1], new double[] { 0.81, 0.9 }); assertTrue (expected.almostEquals (marg)); }
public void testAsTable () { FactorGraph fg = new FactorGraph (); fg.multiplyBy (tbl1); fg.multiplyBy (tbl2); AbstractTableFactor actual = fg.asTable (); AbstractTableFactor expected = (AbstractTableFactor) tbl1.multiply (tbl2); assertTrue (expected.almostEquals (actual)); }
public void testMarginalize () { FactorGraph fg = new FactorGraph (); fg.multiplyBy (tbl1); fg.multiplyBy (tbl2); Factor marg = fg.marginalize (vars[1]); Factor expected = new TableFactor (vars[1], new double[] { 0.81, 0.9 }); assertTrue (expected.almostEquals (marg)); }
public void testAsTable () { FactorGraph fg = new FactorGraph (); fg.multiplyBy (tbl1); fg.multiplyBy (tbl2); AbstractTableFactor actual = fg.asTable (); AbstractTableFactor expected = (AbstractTableFactor) tbl1.multiply (tbl2); assertTrue (expected.almostEquals (actual)); }
public void testClear () { FactorGraph fg = new FactorGraph (); fg.multiplyBy (tbl1); fg.multiplyBy (tbl2); assertEquals (3, fg.numVariables ()); assertEquals (2, fg.factors ().size ()); fg.clear (); assertEquals (0, fg.numVariables ()); assertEquals (0, fg.factors ().size ()); for (int vi = 0; vi < tbl1.varSet ().size (); vi++) { assertTrue (!fg.containsVar (tbl1.getVariable (vi))); } for (int vi = 0; vi < tbl2.varSet ().size (); vi++) { assertTrue (!fg.containsVar (tbl2.getVariable (vi))); } }
public void testClear () { FactorGraph fg = new FactorGraph (); fg.multiplyBy (tbl1); fg.multiplyBy (tbl2); assertEquals (3, fg.numVariables ()); assertEquals (2, fg.factors ().size ()); fg.clear (); assertEquals (0, fg.numVariables ()); assertEquals (0, fg.factors ().size ()); for (int vi = 0; vi < tbl1.varSet ().size (); vi++) { assertTrue (!fg.containsVar (tbl1.getVariable (vi))); } for (int vi = 0; vi < tbl2.varSet ().size (); vi++) { assertTrue (!fg.containsVar (tbl2.getVariable (vi))); } }
public void testTableTimesFg () { FactorGraph fg = new FactorGraph (); fg.multiplyBy (tbl1); fg.multiplyBy (tbl2); Factor product = tbl3.multiply (fg); assertTrue (product instanceof AbstractTableFactor); assertEquals (4, product.varSet ().size ()); Assignment assn = new Assignment (product.varSet ().toVariableArray (), new int [4]); assertEquals (0.032, product.value (assn), 1e-5); }
public void testLogTableTimesFg () { FactorGraph fg = new FactorGraph (); fg.multiplyBy (tbl1); fg.multiplyBy (tbl2); Factor product = ltbl1.multiply (fg); assertTrue (product instanceof AbstractTableFactor); assertEquals (3, product.varSet ().size ()); Assignment assn = new Assignment (product.varSet ().toVariableArray (), new int [3]); assertEquals (0.128, product.value (assn), 1e-5); }
public void testTableTimesFg () { FactorGraph fg = new FactorGraph (); fg.multiplyBy (tbl1); fg.multiplyBy (tbl2); Factor product = tbl3.multiply (fg); assertTrue (product instanceof AbstractTableFactor); assertEquals (4, product.varSet ().size ()); Assignment assn = new Assignment (product.varSet ().toVariableArray (), new int [4]); assertEquals (0.032, product.value (assn), 1e-5); }
public void testLogTableTimesFg () { FactorGraph fg = new FactorGraph (); fg.multiplyBy (tbl1); fg.multiplyBy (tbl2); Factor product = ltbl1.multiply (fg); assertTrue (product instanceof AbstractTableFactor); assertEquals (3, product.varSet ().size ()); Assignment assn = new Assignment (product.varSet ().toVariableArray (), new int [3]); assertEquals (0.128, product.value (assn), 1e-5); }
public void testRemove () { FactorGraph fg = new FactorGraph (); fg.multiplyBy (tbl1); fg.multiplyBy (tbl2); assertEquals (2, fg.getDegree (vars[1])); fg.divideBy (tbl1); assertEquals (2, fg.varSet ().size ()); Assignment assn = new Assignment (fg.varSet ().toVariableArray (), new int [2]); assertEquals (0.2, fg.value (assn), 1e-5); int nvs = 0; for (Iterator it = fg.varSetIterator (); it.hasNext(); it.next ()) { nvs++; } assertEquals (1, nvs); assertEquals (1, fg.getDegree (vars[1])); assertTrue (fg.get (0) != fg.get (1)); assertEquals (vars[1], fg.get (0)); assertEquals (vars[2], fg.get (1)); }
public void testRemove () { FactorGraph fg = new FactorGraph (); fg.multiplyBy (tbl1); fg.multiplyBy (tbl2); assertEquals (2, fg.getDegree (vars[1])); fg.divideBy (tbl1); assertEquals (2, fg.varSet ().size ()); Assignment assn = new Assignment (fg.varSet ().toVariableArray (), new int [2]); assertEquals (0.2, fg.value (assn), 1e-5); int nvs = 0; for (Iterator it = fg.varSetIterator (); it.hasNext(); it.next ()) { nvs++; } assertEquals (1, nvs); assertEquals (1, fg.getDegree (vars[1])); assertTrue (fg.get (0) != fg.get (1)); assertEquals (vars[1], fg.get (0)); assertEquals (vars[2], fg.get (1)); }