You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ah...@apache.org on 2022/11/28 17:20:00 UTC
[commons-statistics] branch master updated: Use tighter test tolerances
This is an automated email from the ASF dual-hosted git repository.
aherbert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-statistics.git
The following commit(s) were added to refs/heads/master by this push:
new 7e272d6 Use tighter test tolerances
7e272d6 is described below
commit 7e272d61be977c5b754707a1318d42b7ac599ca2
Author: Alex Herbert <ah...@apache.org>
AuthorDate: Mon Nov 28 16:14:04 2022 +0000
Use tighter test tolerances
---
.../statistics/distribution/BinomialDistributionTest.java | 3 ++-
.../statistics/distribution/ExponentialDistributionTest.java | 3 ++-
.../statistics/distribution/GammaDistributionTest.java | 3 ++-
.../statistics/distribution/LevyDistributionTest.java | 2 +-
.../statistics/distribution/LogNormalDistributionTest.java | 2 +-
.../statistics/distribution/LogisticDistributionTest.java | 3 +--
.../statistics/distribution/NormalDistributionTest.java | 5 ++---
.../statistics/distribution/ParetoDistributionTest.java | 3 +--
.../distribution/UniformContinuousDistributionTest.java | 3 ++-
.../distribution/UniformDiscreteDistributionTest.java | 3 ++-
.../statistics/distribution/test.binomial.2.properties | 3 ++-
.../statistics/distribution/test.exponential.3.properties | 10 ++++++++++
.../statistics/distribution/test.logistic.2.properties | 12 ++++++++++++
.../statistics/distribution/test.lognormal.1.properties | 5 +++++
.../statistics/distribution/test.lognormal.2.properties | 7 ++++++-
.../statistics/distribution/test.lognormal.3.properties | 3 +++
.../commons/statistics/distribution/test.normal.1.properties | 1 +
.../commons/statistics/distribution/test.normal.3.properties | 3 +++
.../commons/statistics/distribution/test.pareto.1.properties | 3 +++
.../commons/statistics/distribution/test.pareto.2.properties | 3 +++
.../commons/statistics/distribution/test.pareto.3.properties | 4 ++++
.../commons/statistics/distribution/test.pareto.8.properties | 3 +++
.../distribution/test.uniformdiscrete.1.properties | 11 +++++++++++
23 files changed, 82 insertions(+), 16 deletions(-)
diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/BinomialDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/BinomialDistributionTest.java
index 143b2b0..6dc6a4e 100644
--- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/BinomialDistributionTest.java
+++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/BinomialDistributionTest.java
@@ -53,7 +53,8 @@ class BinomialDistributionTest extends BaseDiscreteDistributionTest {
@Override
protected double getRelativeTolerance() {
- return 1e-15;
+ // Tolerance is 8.881784197001252E-16
+ return 4 * RELATIVE_EPS;
}
//-------------------- Additional test cases -------------------------------
diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ExponentialDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ExponentialDistributionTest.java
index 549ae06..2a3b452 100644
--- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ExponentialDistributionTest.java
+++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ExponentialDistributionTest.java
@@ -48,7 +48,8 @@ class ExponentialDistributionTest extends BaseContinuousDistributionTest {
@Override
protected double getRelativeTolerance() {
- return 5e-15;
+ // Tolerance is 8.881784197001252E-16
+ return 4 * RELATIVE_EPS;
}
//------------ Additional tests -------------------------------------------
diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/GammaDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/GammaDistributionTest.java
index ffa787c..67b2895 100644
--- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/GammaDistributionTest.java
+++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/GammaDistributionTest.java
@@ -61,7 +61,8 @@ class GammaDistributionTest extends BaseContinuousDistributionTest {
@Override
protected double getRelativeTolerance() {
- return 1e-15;
+ // Tolerance is 8.881784197001252E-16
+ return 4 * RELATIVE_EPS;
}
//-------------------- Additional test cases -------------------------------
diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/LevyDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/LevyDistributionTest.java
index 67f8b0a..b46559e 100644
--- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/LevyDistributionTest.java
+++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/LevyDistributionTest.java
@@ -43,6 +43,6 @@ class LevyDistributionTest extends BaseContinuousDistributionTest {
@Override
protected double getRelativeTolerance() {
- return 1e-14;
+ return 5e-15;
}
}
diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/LogNormalDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/LogNormalDistributionTest.java
index e9d4a7a..1086148 100644
--- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/LogNormalDistributionTest.java
+++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/LogNormalDistributionTest.java
@@ -47,7 +47,7 @@ class LogNormalDistributionTest extends BaseContinuousDistributionTest {
@Override
protected double getRelativeTolerance() {
- return 5e-14;
+ return 5e-15;
}
//-------------------- Additional test cases -------------------------------
diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/LogisticDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/LogisticDistributionTest.java
index fba8a3a..3f7555c 100644
--- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/LogisticDistributionTest.java
+++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/LogisticDistributionTest.java
@@ -46,8 +46,7 @@ class LogisticDistributionTest extends BaseContinuousDistributionTest {
@Override
protected double getRelativeTolerance() {
- // Limited by the CDF inverse mapping
- return 1e-9;
+ return 5e-15;
}
//-------------------- Additional test cases -------------------------------
diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/NormalDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/NormalDistributionTest.java
index da769f4..b99a96c 100644
--- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/NormalDistributionTest.java
+++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/NormalDistributionTest.java
@@ -54,9 +54,8 @@ class NormalDistributionTest extends BaseContinuousDistributionTest {
@Override
protected double getRelativeTolerance() {
- // Tests are limited by the inverse survival probability
- // Tolerance is 4.440892098500626E-15.
- return 20 * RELATIVE_EPS;
+ // Tolerance is 2.220446049250313E-15
+ return 10 * RELATIVE_EPS;
}
//-------------------- Additional test cases -------------------------------
diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ParetoDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ParetoDistributionTest.java
index c154b13..ae03e87 100644
--- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ParetoDistributionTest.java
+++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ParetoDistributionTest.java
@@ -61,8 +61,7 @@ class ParetoDistributionTest extends BaseContinuousDistributionTest {
@Override
protected double getRelativeTolerance() {
- // Limited by CDF inverse mapping test
- return 1e-9;
+ return 5e-15;
}
//-------------------- Additional test cases -------------------------------
diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/UniformContinuousDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/UniformContinuousDistributionTest.java
index fea2b7a..8cfe5ca 100644
--- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/UniformContinuousDistributionTest.java
+++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/UniformContinuousDistributionTest.java
@@ -60,7 +60,8 @@ class UniformContinuousDistributionTest extends BaseContinuousDistributionTest {
@Override
protected double getRelativeTolerance() {
- return 1e-15;
+ // Tolerance is 4.440892098500626E-16
+ return 2 * RELATIVE_EPS;
}
//-------------------- Additional test cases -------------------------------
diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/UniformDiscreteDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/UniformDiscreteDistributionTest.java
index 2fb4426..8bbad25 100644
--- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/UniformDiscreteDistributionTest.java
+++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/UniformDiscreteDistributionTest.java
@@ -55,7 +55,8 @@ class UniformDiscreteDistributionTest extends BaseDiscreteDistributionTest {
@Override
protected double getRelativeTolerance() {
- return 1e-15;
+ // Tolerance is 4.440892098500626E-16
+ return 2 * RELATIVE_EPS;
}
//-------------------- Additional test cases -------------------------------
diff --git a/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.binomial.2.properties b/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.binomial.2.properties
index 09ceb2d..3c13fab 100644
--- a/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.binomial.2.properties
+++ b/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.binomial.2.properties
@@ -17,7 +17,8 @@ parameters = 100 0.99
# 100 * 0.99
mean = 99
# 100 * 0.99 * 0.01
-variance = 0.99
+# Computed with BigDecimal as 0.99 is not machine representable
+variance = 0.99000000000000087041485130612271980351
lower = 0
upper = 100
# Set values for the required fields.
diff --git a/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.exponential.3.properties b/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.exponential.3.properties
index 51f870d..3fd27b3 100644
--- a/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.exponential.3.properties
+++ b/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.exponential.3.properties
@@ -54,3 +54,13 @@ pdf.values = \
0.04632230081520102849, 0.03921098109495325251,\
0.03319137891190929862, 0.02809589567285093736,\
0.02378266223150159522
+sf.values = \
+ 1. , 0.9933555062550344 , 0.9867551618071957 , \
+ 0.9801986733067553 , 0.973685749353145 , 0.9672161004820059 , \
+ 0.9355069850316178 , 0.8464817248906141 , 0.7165313105737893 , \
+ 0.6065306597126334 , 0.513417119032592 , 0.4345982085070782 , \
+ 0.36787944117144233 , 0.3114032239145977 , 0.26359713811572677 , \
+ 0.22313016014842982 , 0.18887560283756183 , 0.1598797460796939 , \
+ 0.1353352832366127 , 0.11455884399268773 , 0.09697196786440505 , \
+ 0.0820849986238988 , 0.06948345122280154 , 0.05881647164242988 , \
+ 0.049787068367863944, 0.042143843509276406, 0.035673993347252395 \
diff --git a/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.logistic.2.properties b/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.logistic.2.properties
index 77b7094..2207aaf 100644
--- a/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.logistic.2.properties
+++ b/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.logistic.2.properties
@@ -42,6 +42,18 @@ pdf.values = \
3.1077352736714892e-05, 8.1921824684442362e-06,\
2.1594553948504202e-06, 5.6922761977604387e-07,\
1.5004686585457629e-07
+sf.values = \
+ 9.9997669144215851e-01, 9.9991158082998111e-01, \
+ 9.9966464986953363e-01, 9.9872898373691865e-01, \
+ 9.9519524711284046e-01, 9.8201379003790845e-01, \
+ 9.3503083087133598e-01, 7.9139147267395504e-01, \
+ 5.0000000000000000e-01, 2.0860852732604496e-01, \
+ 6.4969169128664073e-02, 1.7986209962091559e-02, \
+ 4.8047528871595184e-03, 1.2710162630813579e-03, \
+ 3.3535013046647811e-04, 8.8419170018938430e-05, \
+ 2.3308557841404794e-05, 6.1441746022147182e-06, \
+ 1.6195941692230884e-06, 4.2692089709348532e-07, \
+ 1.1253516205509499e-07
cdf.hp.points = -30 -32
cdf.hp.values = 7.781132241133797e-20 5.406599225349898e-21
sf.hp.points = 33, 37
diff --git a/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.lognormal.1.properties b/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.lognormal.1.properties
index 8588db2..a130450 100644
--- a/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.lognormal.1.properties
+++ b/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.lognormal.1.properties
@@ -44,3 +44,8 @@ cdf.hp.points = 4e-5, 7e-5
cdf.hp.values = 1.2366527173500762e-18, 3.9216120913158885e-17
sf.hp.points = 999999, 2e6
sf.hp.values = 2.924727705260493e-17, 3.8830698713006447e-19
+
+cdf.hp.relative = 5e-14
+cdf.hp.mapping.relative = 5e-14
+sf.hp.relative = 5e-14
+sf.hp.mapping.relative = 5e-14
diff --git a/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.lognormal.2.properties b/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.lognormal.2.properties
index 93afbd0..64a8903 100644
--- a/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.lognormal.2.properties
+++ b/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.lognormal.2.properties
@@ -14,7 +14,8 @@
# limitations under the License.
parameters = 1.0 0.5
-# Computed using scipy.stats lognorm
+# Computed using scipy.stats lognorm(0.5, loc=0, scale=2.718281828459045)
+# scale = exp(mu)
mean = 3.080216848918031
variance = 2.694758124344946
lower = 0
@@ -54,3 +55,7 @@ pdf.values = \
1.4800157244728182e-01, 1.2591055687217639e-01,\
1.0666557638466362e-01, 9.0086334161030540e-02,\
7.5921269497598851e-02
+
+# Overridden tolerances
+cdf.relative = 5e-14
+cdf.mapping.relative = 5e-14
diff --git a/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.lognormal.3.properties b/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.lognormal.3.properties
index 273882b..979dfd1 100644
--- a/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.lognormal.3.properties
+++ b/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.lognormal.3.properties
@@ -55,3 +55,6 @@ pdf.values = \
1.1646158708679376e-01, 1.0479815963713561e-01,\
9.4307438580933281e-02, 8.4897336488739733e-02,\
7.6471232330393046e-02
+
+ # Overridden tolerances
+cdf.mapping.relative = 1e-14
diff --git a/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.normal.1.properties b/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.normal.1.properties
index 88889af..fdff246 100644
--- a/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.normal.1.properties
+++ b/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.normal.1.properties
@@ -78,6 +78,7 @@ sf.hp.points = 14.5, 13.9
sf.hp.values = 4.10456525339190342717686865166e-19, 1.74955280069751640746342569694e-17
# Overridden tolerances
+sf.mapping.relative = 5e-14
cdf.hp.relative = 1e-14
cdf.hp.mapping.relative = 5e-14
sf.hp.relative = 1e-14
diff --git a/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.normal.3.properties b/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.normal.3.properties
index 6d4eadb..785a587 100644
--- a/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.normal.3.properties
+++ b/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.normal.3.properties
@@ -33,3 +33,6 @@ sf.values = \
5.0000000000000000000e-01 1.5865525393145704647e-01 \
2.2750131948179212055e-02 1.3498980316300945772e-03 \
3.1671241833119924327e-05 2.8665157187919391185e-07
+
+# Overridden tolerances
+sf.relative = 3e-15
diff --git a/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.pareto.1.properties b/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.pareto.1.properties
index e70491f..aff49ef 100644
--- a/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.pareto.1.properties
+++ b/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.pareto.1.properties
@@ -47,3 +47,6 @@ pdf.values = \
# Computed using WolframAlpha
sf.hp.points = 42e35, 64e35
sf.hp.values = 8.451542547285151e-19, 6.8465319688145555e-19
+
+# Overridden tolerances
+cdf.relative = 2e-14
diff --git a/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.pareto.2.properties b/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.pareto.2.properties
index a4bcd6c..c847ca8 100644
--- a/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.pareto.2.properties
+++ b/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.pareto.2.properties
@@ -47,3 +47,6 @@ pdf.values = \
# Computed using WolframAlpha
sf.hp.points = 42e22, 64e24
sf.hp.values = 4.3692206064732326e-18, 1.0074093110845689e-19
+
+# Overridden tolerances
+cdf.relative = 1e-14
diff --git a/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.pareto.3.properties b/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.pareto.3.properties
index ec28e53..35f1763 100644
--- a/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.pareto.3.properties
+++ b/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.pareto.3.properties
@@ -47,3 +47,7 @@ pdf.values = \
# Computed using WolframAlpha
sf.hp.points = 42e10, 64e11
sf.hp.values = 1.909008870803043e-17, 3.2093118603818403e-19
+
+# Overridden tolerances
+cdf.relative = 1e-14
+sf.hp.relative = 1e-14
diff --git a/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.pareto.8.properties b/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.pareto.8.properties
index 380cc31..6e949e5 100644
--- a/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.pareto.8.properties
+++ b/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.pareto.8.properties
@@ -24,3 +24,6 @@ cdf.points = 0.1, 0.101, 0.11, 0.12
cdf.values = 0.0, 0.9602007494163832, 0.9999999999999613, 1.0
pdf.values = 3239.9999999999504, 127.67284345634626, 1.1426739686199978e-10, 5.979158204731506e-23
sf.values = 1., 0.039799250583616726, 3.879448658895309e-14, 2.2145030387895359e-26
+
+# Overridden tolerances
+sf.relative = 1e-13
diff --git a/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.uniformdiscrete.1.properties b/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.uniformdiscrete.1.properties
index 0242d55..6c103ca 100644
--- a/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.uniformdiscrete.1.properties
+++ b/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.uniformdiscrete.1.properties
@@ -42,6 +42,17 @@ pmf.values = \
0.111111111111111111,\
0.111111111111111111,\
0
+sf.values = \
+ 1.0 \
+ 0.8888888888888888 \
+ 0.7777777777777778 \
+ 0.6666666666666666 \
+ 0.5555555555555555 \
+ 0.4444444444444444 \
+ 0.3333333333333333 \
+ 0.2222222222222222 \
+ 0.1111111111111111 \
+ 0, 0
icdf.points = \
0, 0.001, 0.010, 0.025, 0.050, 0.100, 0.200,\
0.5, 0.999, 0.990, 0.975, 0.950, 0.900, 1