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 <[email protected]>
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);
+ }
}