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));
         }
     }
 

Reply via email to