diff --git a/java/test/org/broadinstitute/sting/utils/MathUtilsTest.java b/java/test/org/broadinstitute/sting/utils/MathUtilsTest.java index db75cecbd..77029cbd9 100755 --- a/java/test/org/broadinstitute/sting/utils/MathUtilsTest.java +++ b/java/test/org/broadinstitute/sting/utils/MathUtilsTest.java @@ -39,8 +39,20 @@ public class MathUtilsTest extends BaseTest { public void testMultinomialProbability() { logger.warn("Executing testMultinomialProbability"); - int[] counts = { 10, 20, 30 }; - double[] probs = { 0.25, 0.25, 0.50 }; - Assert.assertTrue(MathUtils.compareDoubles(MathUtils.multinomialProbability(counts, probs), 0.002870301, 1e-9) == 0); + int[] counts0 = { 2, 0, 1 }; + double[] probs0 = { 0.33, 0.33, 0.34 }; + Assert.assertTrue(MathUtils.compareDoubles(MathUtils.multinomialProbability(counts0, probs0), 0.111078, 1e-6) == 0); + + int[] counts1 = { 10, 20, 30 }; + double[] probs1 = { 0.25, 0.25, 0.50 }; + Assert.assertTrue(MathUtils.compareDoubles(MathUtils.multinomialProbability(counts1, probs1), 0.002870301, 1e-9) == 0); + + int[] counts2 = { 38, 82, 50, 36 }; + double[] probs2 = { 0.25, 0.25, 0.25, 0.25 }; + Assert.assertTrue(MathUtils.compareDoubles(MathUtils.multinomialProbability(counts2, probs2), 1.88221e-09, 1e-10) == 0); + + int[] counts3 = { 1, 600, 1 }; + double[] probs3 = { 0.33, 0.33, 0.34 }; + Assert.assertTrue(MathUtils.compareDoubles(MathUtils.multinomialProbability(counts3, probs3), 5.20988e-285, 1e-286) == 0); } } \ No newline at end of file