This is an automated email from the ASF dual-hosted git repository. erans pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-math.git
The following commit(s) were added to refs/heads/master by this push: new f067b2b4b MATH-1644: Prevent computed probability from exceeding 1. f067b2b4b is described below commit f067b2b4bae9d7690a84cd65bedd45bca5691441 Author: Gilles Sadowski <gillese...@gmail.com> AuthorDate: Sat Apr 9 14:07:03 2022 +0200 MATH-1644: Prevent computed probability from exceeding 1. --- .../apache/commons/math4/legacy/stat/inference/BinomialTest.java | 2 +- .../commons/math4/legacy/stat/inference/BinomialTestTest.java | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/stat/inference/BinomialTest.java b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/stat/inference/BinomialTest.java index 80650c9b4..a7deb3187 100644 --- a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/stat/inference/BinomialTest.java +++ b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/stat/inference/BinomialTest.java @@ -138,7 +138,7 @@ public class BinomialTest { if (criticalValueLow == criticalValueHigh) { pTotal += pLow; } else { - pTotal += 2 * pLow; + pTotal += 2 * Math.nextDown(pLow); } criticalValueLow++; criticalValueHigh--; diff --git a/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/stat/inference/BinomialTestTest.java b/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/stat/inference/BinomialTestTest.java index bf83dfa17..f480e0b66 100644 --- a/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/stat/inference/BinomialTestTest.java +++ b/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/stat/inference/BinomialTestTest.java @@ -126,4 +126,11 @@ public class BinomialTestTest { Assert.assertFalse(testStatistic.binomialTest(trials, successes, probability, AlternativeHypothesis.GREATER_THAN, alpha01)); Assert.assertFalse(testStatistic.binomialTest(trials, successes, probability, AlternativeHypothesis.LESS_THAN, alpha05)); } + + @Test + public void testMath1644() { + final BinomialTest bt = new BinomialTest(); + final double pval = bt.binomialTest(10, 5, 0.5, AlternativeHypothesis.TWO_SIDED); + Assert.assertTrue("pval=" + pval, pval <= 1); + } }