public static void main (String[] args) { TestSuite theSuite; if (args.length > 0) { theSuite = new TestSuite (); for (int i = 0; i < args.length; i++) { theSuite.addTest (new TestNormalFactor (args[i])); } } else { theSuite = (TestSuite) suite (); } junit.textui.TestRunner.run (theSuite); }
void checkMeanStd (TDoubleArrayList ell, double mu, double sigma) { double[] vals = ell.toNativeArray (); double mean1 = MatrixOps.mean (vals); double std1 = MatrixOps.stddev (vals); assertEquals (mu, mean1, 0.025); assertEquals (sigma, std1, 0.01); }
public void testSample () { Variable v1 = new Variable (Variable.CONTINUOUS); Variable v2 = new Variable (Variable.CONTINUOUS); Randoms r = new Randoms (2343); Vector mu = new DenseVector (new double[] { 1.0, 2.0 }); Matrix var = new DenseMatrix (new double[][] {{ 0.5, 2.0 }, { 0, 1 }}); // Matrix var = new DenseMatrix (new double[][] {{ 0.5, 2.0 }, { 2.0, 0.75 }}); VarSet vars = new HashVarSet (new Variable[] { v1, v2 }); Factor f = new NormalFactor (vars, mu, var); TDoubleArrayList v1lst = new TDoubleArrayList (); TDoubleArrayList v2lst = new TDoubleArrayList (); for (int i = 0; i < 100000; i++) { Assignment assn = f.sample (r); v1lst.add (assn.getDouble (v1)); v2lst.add (assn.getDouble (v2)); } checkMeanStd (v1lst, 1.0, Math.sqrt (1/0.5)); checkMeanStd (v2lst, 2.0, Math.sqrt (1/0.75)); }
public void testSample () { Variable v1 = new Variable (Variable.CONTINUOUS); Variable v2 = new Variable (Variable.CONTINUOUS); Randoms r = new Randoms (2343); Vector mu = new DenseVector (new double[] { 1.0, 2.0 }); Matrix var = new DenseMatrix (new double[][] {{ 0.5, 2.0 }, { 0, 1 }}); // Matrix var = new DenseMatrix (new double[][] {{ 0.5, 2.0 }, { 2.0, 0.75 }}); VarSet vars = new HashVarSet (new Variable[] { v1, v2 }); Factor f = new NormalFactor (vars, mu, var); TDoubleArrayList v1lst = new TDoubleArrayList (); TDoubleArrayList v2lst = new TDoubleArrayList (); for (int i = 0; i < 100000; i++) { Assignment assn = f.sample (r); v1lst.add (assn.getDouble (v1)); v2lst.add (assn.getDouble (v2)); } checkMeanStd (v1lst, 1.0, Math.sqrt (1/0.5)); checkMeanStd (v2lst, 2.0, Math.sqrt (1/0.75)); }
public static void main (String[] args) { TestSuite theSuite; if (args.length > 0) { theSuite = new TestSuite (); for (int i = 0; i < args.length; i++) { theSuite.addTest (new TestNormalFactor (args[i])); } } else { theSuite = (TestSuite) suite (); } junit.textui.TestRunner.run (theSuite); }
void checkMeanStd (TDoubleArrayList ell, double mu, double sigma) { double[] vals = ell.toNativeArray (); double mean1 = MatrixOps.mean (vals); double std1 = MatrixOps.stddev (vals); assertEquals (mu, mean1, 0.025); assertEquals (sigma, std1, 0.01); }