public static void main (String[] args) throws Throwable { TestSuite theSuite; if (args.length > 0) { theSuite = new TestSuite (); for (int i = 0; i < args.length; i++) { theSuite.addTest (new TestRandomGraphs (args[i])); } } else { theSuite = (TestSuite) suite (); } TestRunner.run (theSuite); }
public void testFrustratedIsGrid () throws IOException { Random r = new Random (0); for (int rep = 0; rep < 100; rep++) { FactorGraph mdl = RandomGraphs.randomFrustratedGrid (10, 1.0, r); // 100 variable factors + 180 edge factors assertEquals (280, mdl.factors ().size ()); assertEquals (100, mdl.numVariables ()); int[] counts = new int [6]; for (int i = 0; i < mdl.numVariables (); i++) { Variable var = mdl.get (i); int degree = mdl.getDegree (var); assertTrue ("Variable "+var+" has degree "+degree, (degree >= 3) && (degree <= 5)); counts[degree]++; } assertEquals (counts[0], 0); assertEquals (counts[1], 0); assertEquals (counts[2], 0); assertEquals (counts[3], 4); assertEquals (counts[4], 32); assertEquals (counts[5], 64); } }
public void testUniformGrid () { UndirectedGrid grid = (UndirectedGrid) RandomGraphs.createUniformGrid (3); assertEquals (9, grid.numVariables ()); assertEquals (12, grid.factors ().size()); BruteForceInferencer inf = new BruteForceInferencer (); TableFactor joint = (TableFactor) inf.joint (grid); for (AssignmentIterator it = joint.assignmentIterator (); it.hasNext(); it.advance ()) { assertEquals (-9 * Math.log (2), joint.logValue (it), 1e-3); } }
public void testUniformGrid () { UndirectedGrid grid = (UndirectedGrid) RandomGraphs.createUniformGrid (3); assertEquals (9, grid.numVariables ()); assertEquals (12, grid.factors ().size()); BruteForceInferencer inf = new BruteForceInferencer (); TableFactor joint = (TableFactor) inf.joint (grid); for (AssignmentIterator it = joint.assignmentIterator (); it.hasNext(); it.advance ()) { assertEquals (-9 * Math.log (2), joint.logValue (it), 1e-3); } }
public static void main (String[] args) throws Throwable { TestSuite theSuite; if (args.length > 0) { theSuite = new TestSuite (); for (int i = 0; i < args.length; i++) { theSuite.addTest (new TestRandomGraphs (args[i])); } } else { theSuite = (TestSuite) suite (); } TestRunner.run (theSuite); }
public void testFrustratedIsGrid () throws IOException { Random r = new Random (0); for (int rep = 0; rep < 100; rep++) { FactorGraph mdl = RandomGraphs.randomFrustratedGrid (10, 1.0, r); // 100 variable factors + 180 edge factors assertEquals (280, mdl.factors ().size ()); assertEquals (100, mdl.numVariables ()); int[] counts = new int [6]; for (int i = 0; i < mdl.numVariables (); i++) { Variable var = mdl.get (i); int degree = mdl.getDegree (var); assertTrue ("Variable "+var+" has degree "+degree, (degree >= 3) && (degree <= 5)); counts[degree]++; } assertEquals (counts[0], 0); assertEquals (counts[1], 0); assertEquals (counts[2], 0); assertEquals (counts[3], 4); assertEquals (counts[4], 32); assertEquals (counts[5], 64); } }
public void testUniformGridWithObservations () { FactorGraph grid = RandomGraphs.createGridWithObs ( new RandomGraphs.UniformFactorGenerator (), new RandomGraphs.UniformFactorGenerator (), 3); assertEquals (18, grid.numVariables ()); assertEquals (12 + 9, grid.factors ().size()); Inferencer inf = new LoopyBP (); inf.computeMarginals (grid); for (Iterator it = grid.variablesIterator (); it.hasNext ();) { Variable var = (Variable) it.next (); Factor marg = inf.lookupMarginal (var); for (AssignmentIterator assnIt = marg.assignmentIterator (); assnIt.hasNext();) { assertEquals (-Math.log (2), marg.logValue (assnIt), 1e-3); assnIt.advance (); } } }
public void testUniformGridWithObservations () { FactorGraph grid = RandomGraphs.createGridWithObs ( new RandomGraphs.UniformFactorGenerator (), new RandomGraphs.UniformFactorGenerator (), 3); assertEquals (18, grid.numVariables ()); assertEquals (12 + 9, grid.factors ().size()); Inferencer inf = new LoopyBP (); inf.computeMarginals (grid); for (Iterator it = grid.variablesIterator (); it.hasNext ();) { Variable var = (Variable) it.next (); Factor marg = inf.lookupMarginal (var); for (AssignmentIterator assnIt = marg.assignmentIterator (); assnIt.hasNext();) { assertEquals (-Math.log (2), marg.logValue (assnIt), 1e-3); assnIt.advance (); } } }