121122123124125126127
throw new IllegalStateException("Rounding error is too big."); } EVVar = 0; } this.EVGaussian = new Gaussian(EV,EVVar); }
180181182183184185186187188
ImmutableList<INode> children = node.getChildren(); Gaussian[] gaussians = new Gaussian[children.size()]; for (int i = 0; i < children.size(); i++) { INode child = children.get(i); gaussians[i] = new Gaussian(child.getEV(),child.getEVVar()); } EVGaussian = Gaussian.maxOf(gaussians); }
119120121122123124125
178179180181182183184185186
19202122232425262728
*/ public class MaxGaussianTest extends TestCase { public void testEqual() throws Exception { Gaussian a = new Gaussian(0,1); Gaussian m = Gaussian.maxOf(a,a); System.out.println(m); assertTrue(close(m.mean, 0.5642, 0.01)); }
26272829303132333435
System.out.println(m); assertTrue(close(m.mean, 0.5642, 0.01)); } public void test3() throws Exception { Gaussian a = new Gaussian(0,1); Gaussian m = Gaussian.maxOf(a,a,a); System.out.println(m); assertTrue(close(m.mean, 0.846, 0.01)); }
34353637383940414243
assertTrue(close(m.mean, 0.846, 0.01)); } public void test10() throws Exception { Gaussian a = new Gaussian(0,1); Gaussian m = Gaussian.maxOf(a,a,a,a,a,a,a,a,a,a); System.out.println(m); assertTrue(close(m.mean, 1.5388, 0.01)); }
41424344454647484950515253
System.out.println(m); assertTrue(close(m.mean, 1.5388, 0.01)); } public void testDifferent() throws Exception { Gaussian a = new Gaussian(0,1); Gaussian b = new Gaussian(-1000,1); Gaussian m = Gaussian.maxOf(a,b); System.out.println(m); assertTrue(close(m.mean, 0, 0.01)); assertTrue(close(m.variance, 1, 0.01)); }
52535455565758596061626364
assertTrue(close(m.variance, 1, 0.01)); } public void testDifferentStdDev() throws Exception { Gaussian a = new Gaussian(5,10); Gaussian b = new Gaussian(-1000,1); Gaussian m = Gaussian.maxOf(a,b); System.out.println(m); assertTrue(close(m.mean, 5, 0.01)); assertTrue(close(m.variance, 10, 0.01)); }
63646566676869707172737475
assertTrue(close(m.variance, 10, 0.01)); } public void testDifferentReverse() throws Exception { Gaussian a = new Gaussian(0,1); Gaussian b = new Gaussian(-1000,1); Gaussian m = Gaussian.maxOf(b,a); System.out.println(m); assertTrue(close(m.mean, 0, 0.01)); assertTrue(close(m.variance, 1, 0.01)); }