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-numbers.git
The following commit(s) were added to refs/heads/master by this push:
new c822a02f Update test tolerances in gamma package
c822a02f is described below
commit c822a02f0b84bd39b85a335d1f9bc92cbc3f4df8
Author: Alex Herbert <[email protected]>
AuthorDate: Fri Aug 25 09:04:59 2023 +0100
Update test tolerances in gamma package
Changes required to pass on Mac OS using Java version: 17.0.6, vendor:
Eclipse Adoptium.
---
.../test/java/org/apache/commons/numbers/gamma/BoostBetaTest.java | 2 +-
.../test/java/org/apache/commons/numbers/gamma/BoostErfTest.java | 2 +-
.../java/org/apache/commons/numbers/gamma/BoostGammaTest.java | 8 ++++----
.../java/org/apache/commons/numbers/gamma/BoostToolsTest.java | 7 +++++--
4 files changed, 11 insertions(+), 8 deletions(-)
diff --git
a/commons-numbers-gamma/src/test/java/org/apache/commons/numbers/gamma/BoostBetaTest.java
b/commons-numbers-gamma/src/test/java/org/apache/commons/numbers/gamma/BoostBetaTest.java
index 22b9e1c1..d1129a1f 100644
---
a/commons-numbers-gamma/src/test/java/org/apache/commons/numbers/gamma/BoostBetaTest.java
+++
b/commons-numbers-gamma/src/test/java/org/apache/commons/numbers/gamma/BoostBetaTest.java
@@ -267,7 +267,7 @@ class BoostBetaTest {
/** regularised ibeta Boost large and diverse data. */
RBETA1_LARGE(BoostBetaTest::ibeta, "ibeta_large_data.csv", 5, 150000,
7500),
/** regularised ibeta Boost small data using the classic continued
fraction evaluation. */
- RBETAC1_SMALL(BoostBetaTest::ibetac, "ibeta_small_data.csv", 6, 30,
4.5),
+ RBETAC1_SMALL(BoostBetaTest::ibetac, "ibeta_small_data.csv", 6, 35,
4.5),
/** regularised ibeta Boost small data using the classic continued
fraction evaluation. */
RBETAC1_MED(BoostBetaTest::ibetac, "ibeta_med_data.csv", 6, 100, 22),
/** regularised ibetac Boost large and diverse data. */
diff --git
a/commons-numbers-gamma/src/test/java/org/apache/commons/numbers/gamma/BoostErfTest.java
b/commons-numbers-gamma/src/test/java/org/apache/commons/numbers/gamma/BoostErfTest.java
index da7bd0e5..46e66935 100644
---
a/commons-numbers-gamma/src/test/java/org/apache/commons/numbers/gamma/BoostErfTest.java
+++
b/commons-numbers-gamma/src/test/java/org/apache/commons/numbers/gamma/BoostErfTest.java
@@ -119,7 +119,7 @@ class BoostErfTest {
/** Erf Boost large data (simple case where all z>8, p=1.0). */
ERF_LARGE(TestFunction.ERF, 0, 0.0),
/** Erfc Boost large data. */
- ERFC_LARGE(TestFunction.ERFC, 1.75, 0.7),
+ ERFC_LARGE(TestFunction.ERFC, 2.0, 0.7),
/** Erf Boost small data (no exponentiation required). */
ERF_SMALL(TestFunction.ERF, 1.2, 0.25),
/** Erfc Boost small data (no exponentiation required: ulp=0). */
diff --git
a/commons-numbers-gamma/src/test/java/org/apache/commons/numbers/gamma/BoostGammaTest.java
b/commons-numbers-gamma/src/test/java/org/apache/commons/numbers/gamma/BoostGammaTest.java
index c7c72110..1ca50fe2 100644
---
a/commons-numbers-gamma/src/test/java/org/apache/commons/numbers/gamma/BoostGammaTest.java
+++
b/commons-numbers-gamma/src/test/java/org/apache/commons/numbers/gamma/BoostGammaTest.java
@@ -151,7 +151,7 @@ class BoostGammaTest {
/** gamma Boost near 1 data. */
TGAMMAO_NEAR_1(BoostGammaTest::tgammaOriginal,
"gamma_near_1_data.csv", 3.3, 1.2),
/** gamma Boost near 2 data. */
- TGAMMAO_NEAR_2(BoostGammaTest::tgammaOriginal,
"gamma_near_2_data.csv", 2.9, 1.2),
+ TGAMMAO_NEAR_2(BoostGammaTest::tgammaOriginal,
"gamma_near_2_data.csv", 4.8, 1.3),
/** gamma Boost near -10 data. */
TGAMMAO_NEAR_M10(BoostGammaTest::tgammaOriginal,
"gamma_near_m10_data.csv", 2.5, 1.2),
/** gamma -20 to 0 data. */
@@ -185,7 +185,7 @@ class BoostGammaTest {
TGAMMA_VERY_NEAR_0(BoostGamma::tgamma, "gamma_very_near_0_data.csv",
3.8, 0.7),
/** gamma Boost factorial data. */
- LGAMMA_FACTORIALS(BoostGamma::lgamma, "gamma_factorials_data.csv", 2,
0.8, 0.1),
+ LGAMMA_FACTORIALS(BoostGamma::lgamma, "gamma_factorials_data.csv", 2,
0.8, 0.125),
/** gamma Boost near 0 data. */
LGAMMA_NEAR_0(BoostGamma::lgamma, "gamma_near_0_data.csv", 2, 1.2,
0.5),
/** gamma Boost near 1 data. */
@@ -297,7 +297,7 @@ class BoostGammaTest {
*/
private enum BiTestCase implements TestError {
/** pow(x, y) - 1 Boost data. */
- POWM1(BoostMath::powm1, "powm1_data.csv", 2.3, 0.4),
+ POWM1(BoostMath::powm1, "powm1_data.csv", 2.6, 0.4),
/** igamma Boost int data. */
IGAMMA_UPPER_INT(BoostGamma::tgamma, "igamma_int_data.csv", 6, 1.5),
/** igamma Boost small data. */
@@ -359,7 +359,7 @@ class BoostGammaTest {
/** gamma p derivative computed for igamma Boost small data. */
LOG_GAMMA_P_DERIV2_SMALL(BoostGammaTest::logGammaPDerivative2,
"igamma_small_data_p_derivative.csv", 3, 1.8e10, 1.4e9),
/** gamma p derivative computed for igamma Boost med data. */
- LOG_GAMMA_P_DERIV2_MED(BoostGammaTest::logGammaPDerivative2,
"igamma_med_data_p_derivative.csv", 3, 6.2, 0.5),
+ LOG_GAMMA_P_DERIV2_MED(BoostGammaTest::logGammaPDerivative2,
"igamma_med_data_p_derivative.csv", 3, 18, 0.8),
/** gamma p derivative computed for igamma Boost big data. */
LOG_GAMMA_P_DERIV2_BIG(BoostGammaTest::logGammaPDerivative2,
"igamma_big_data_p_derivative.csv", 3, 40000, 3000),
/** igamma asymptotic approximation term. */
diff --git
a/commons-numbers-gamma/src/test/java/org/apache/commons/numbers/gamma/BoostToolsTest.java
b/commons-numbers-gamma/src/test/java/org/apache/commons/numbers/gamma/BoostToolsTest.java
index fe5b744b..58a4e3cc 100644
---
a/commons-numbers-gamma/src/test/java/org/apache/commons/numbers/gamma/BoostToolsTest.java
+++
b/commons-numbers-gamma/src/test/java/org/apache/commons/numbers/gamma/BoostToolsTest.java
@@ -49,10 +49,13 @@ class BoostToolsTest {
final double expected = Math.log(a + x);
final int maxTerms = 1000;
- for (final double eps : new double[] {1e-6, 1e-10, Math.ulp(1.0)}) {
+ // Does not always pass at eps = ulp(1.0).
+ // The use of Math.log as a reference is platform dependent.
+ for (final double eps : new double[] {1e-6, 1e-10, Math.ulp(2.0)}) {
final DoubleSupplier fun = new LogApXSeries(a, x);
final double actual = BoostTools.sumSeries(fun, eps, maxTerms,
Math.log(a));
- Assertions.assertEquals(expected, actual, expected * eps, () ->
"eps: " + eps);
+ Assertions.assertEquals(expected, actual, expected * eps,
+ () -> String.format("eps: %s, relative error: %s", eps,
Math.abs(expected - actual) / expected));
}
}