This is an automated email from the ASF dual-hosted git repository.

desruisseaux pushed a commit to branch geoapi-4.0
in repository https://gitbox.apache.org/repos/asf/sis.git

commit 79f4643e79aedbe142019d84419d758e3e5b66ca
Author: Martin Desruisseaux <[email protected]>
AuthorDate: Mon Sep 3 18:26:04 2018 +0200

    Replace usage of Math.nextUp(double) by Math.nextDown(double) where 
appropriate.
---
 .../projection/ConformalProjectionTest.java        |  2 +-
 .../projection/LambertConicConformalTest.java      | 36 +++++++++++-----------
 .../operation/projection/MercatorTest.java         |  8 ++---
 .../java/org/apache/sis/measure/NumberRange.java   | 13 +++-----
 4 files changed, 27 insertions(+), 32 deletions(-)

diff --git 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/ConformalProjectionTest.java
 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/ConformalProjectionTest.java
index ac1c2e3..010a944 100644
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/ConformalProjectionTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/ConformalProjectionTest.java
@@ -64,7 +64,7 @@ public final strictfp class ConformalProjectionTest extends 
TransformTestCase {
         assertEquals("Forward 0°N",      0, log(tan(PI/4)),                   
TOLERANCE);
         assertEquals("Inverse 0 m",      0, PI/2 - 2*atan(exp(0)),            
TOLERANCE);
         assertEquals("Forward 90°S",     NEGATIVE_INFINITY, log(tan(0)),      
TOLERANCE);
-        assertEquals("Forward (90+ε)°S", NaN,  log(tan(-nextUp(0))),          
TOLERANCE);
+        assertEquals("Forward (90+ε)°S", NaN,  log(tan(nextDown(0))),         
TOLERANCE);
         assertEquals("Inverse −∞",       PI/2, atan(exp(-NEGATIVE_INFINITY)), 
TOLERANCE);
         assertEquals("Inverse −∞ appr.", PI/2, atan(exp(LN_INFINITY + 1)),    
TOLERANCE);
         /*
diff --git 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/LambertConicConformalTest.java
 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/LambertConicConformalTest.java
index 0b029e1..143ec65 100644
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/LambertConicConformalTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/LambertConicConformalTest.java
@@ -120,15 +120,15 @@ public final strictfp class LambertConicConformalTest 
extends MapProjectionTestC
             createNormalizedProjection(true, 40);       // Elliptical case
         }
         final double INF = POSITIVE_INFINITY;
-        assertEquals ("Not a number",     NaN, transform(NaN),            
NORMALIZED_TOLERANCE);
-        assertEquals ("Out of range",     NaN, transform(+2),             
NORMALIZED_TOLERANCE);
-        assertEquals ("Out of range",     NaN, transform(-2),             
NORMALIZED_TOLERANCE);
-        assertEquals ("Forward 0°N",      1,   transform(0),              
NORMALIZED_TOLERANCE);
-        assertEquals ("Forward 90°S",     0,   transform(-PI/2),          
NORMALIZED_TOLERANCE);
-        assertEquals ("Forward 90°N",     INF, transform(+PI/2),          
NORMALIZED_TOLERANCE);
-        assertEquals ("Forward (90+ε)°S", 0,   transform(-nextUp( PI/2)), 
NORMALIZED_TOLERANCE);
-        assertEquals ("Forward (90+ε)°N", INF, transform(+nextUp(+PI/2)), 
NORMALIZED_TOLERANCE);
-        assertEquals ("Forward (90-ε)°S", 0,   transform(+nextUp(-PI/2)), 
1E-10);
+        assertEquals ("Not a number",     NaN, transform(NaN),             
NORMALIZED_TOLERANCE);
+        assertEquals ("Out of range",     NaN, transform(+2),              
NORMALIZED_TOLERANCE);
+        assertEquals ("Out of range",     NaN, transform(-2),              
NORMALIZED_TOLERANCE);
+        assertEquals ("Forward 0°N",      1,   transform(0),               
NORMALIZED_TOLERANCE);
+        assertEquals ("Forward 90°S",     0,   transform(-PI/2),           
NORMALIZED_TOLERANCE);
+        assertEquals ("Forward 90°N",     INF, transform(+PI/2),           
NORMALIZED_TOLERANCE);
+        assertEquals ("Forward (90+ε)°S", 0,   transform(nextDown(-PI/2)), 
NORMALIZED_TOLERANCE);
+        assertEquals ("Forward (90+ε)°N", INF, transform(nextUp  (+PI/2)), 
NORMALIZED_TOLERANCE);
+        assertEquals ("Forward (90-ε)°S", 0,   transform(nextUp  (-PI/2)), 
1E-10);
 
         assertEquals ("Not a number", NaN, inverseTransform(NaN),  
NORMALIZED_TOLERANCE);
         assertEquals ("Inverse 0",  -PI/2, inverseTransform( 0),   
NORMALIZED_TOLERANCE);
@@ -141,15 +141,15 @@ public final strictfp class LambertConicConformalTest 
extends MapProjectionTestC
         createNormalizedProjection(((LambertConicConformal) 
transform).eccentricity != 0, -40);
         validate();
 
-        assertEquals ("Not a number",     NaN, transform(NaN),            
NORMALIZED_TOLERANCE);
-        assertEquals ("Out of range",     NaN, transform(+2),             
NORMALIZED_TOLERANCE);
-        assertEquals ("Out of range",     NaN, transform(-2),             
NORMALIZED_TOLERANCE);
-        assertEquals ("Forward 0°N",      1,   transform(0),              
NORMALIZED_TOLERANCE);
-        assertEquals ("Forward 90°N",     INF, transform(+PI/2),          
NORMALIZED_TOLERANCE);
-        assertEquals ("Forward 90°S",     0,   transform(-PI/2),          
NORMALIZED_TOLERANCE);
-        assertEquals ("Forward (90+ε)°N", INF, transform(+nextUp(+PI/2)), 
NORMALIZED_TOLERANCE);
-        assertEquals ("Forward (90+ε)°S", 0,   transform(-nextUp( PI/2)), 
NORMALIZED_TOLERANCE);
-        assertEquals ("Forward (90-ε)°S", 0,   transform( nextUp(-PI/2)), 
1E-10);
+        assertEquals ("Not a number",     NaN, transform(NaN),             
NORMALIZED_TOLERANCE);
+        assertEquals ("Out of range",     NaN, transform(+2),              
NORMALIZED_TOLERANCE);
+        assertEquals ("Out of range",     NaN, transform(-2),              
NORMALIZED_TOLERANCE);
+        assertEquals ("Forward 0°N",      1,   transform(0),               
NORMALIZED_TOLERANCE);
+        assertEquals ("Forward 90°N",     INF, transform(+PI/2),           
NORMALIZED_TOLERANCE);
+        assertEquals ("Forward 90°S",     0,   transform(-PI/2),           
NORMALIZED_TOLERANCE);
+        assertEquals ("Forward (90+ε)°N", INF, transform(nextUp  (+PI/2)), 
NORMALIZED_TOLERANCE);
+        assertEquals ("Forward (90+ε)°S", 0,   transform(nextDown(-PI/2)), 
NORMALIZED_TOLERANCE);
+        assertEquals ("Forward (90-ε)°S", 0,   transform(nextUp  (-PI/2)), 
1E-10);
 
         assertEquals ("Not a number", NaN, inverseTransform(NaN),  
NORMALIZED_TOLERANCE);
         assertEquals ("Inverse 0",  -PI/2, inverseTransform( 0),   
NORMALIZED_TOLERANCE);
diff --git 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/MercatorTest.java
 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/MercatorTest.java
index 23d28aa..451e99a 100644
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/MercatorTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/MercatorTest.java
@@ -141,10 +141,10 @@ public final strictfp class MercatorTest extends 
MapProjectionTestCase {
         assertEquals ("Forward 0°N",      0,                      
transform(0),             tolerance);
         assertEquals ("Forward 90°N",     POSITIVE_INFINITY,      
transform(+PI/2),         tolerance);
         assertEquals ("Forward 90°S",     NEGATIVE_INFINITY,      
transform(-PI/2),         tolerance);
-        assertEquals ("Forward (90+ε)°N", POSITIVE_INFINITY,      
transform(+nextUp(PI/2)), tolerance);
-        assertEquals ("Forward (90+ε)°S", NEGATIVE_INFINITY,      
transform(-nextUp(PI/2)), tolerance);
-        assertBetween("Forward (90-ε)°N", +MIN_VALUE, +MAX_VALUE, 
transform(-nextUp(-PI/2)));
-        assertBetween("Forward (90-ε)°S", -MAX_VALUE, -MIN_VALUE, 
transform(+nextUp(-PI/2)));
+        assertEquals ("Forward (90+ε)°N", POSITIVE_INFINITY,      
transform(nextUp  ( PI/2)), tolerance);
+        assertEquals ("Forward (90+ε)°S", NEGATIVE_INFINITY,      
transform(nextDown(-PI/2)), tolerance);
+        assertBetween("Forward (90-ε)°N", +MIN_VALUE, +MAX_VALUE, 
transform(nextDown( PI/2)));
+        assertBetween("Forward (90-ε)°S", -MAX_VALUE, -MIN_VALUE, 
transform(nextUp  (-PI/2)));
 
         assertEquals ("Not a number",     NaN,   inverseTransform(NaN),        
        tolerance);
         assertEquals ("Inverse 0 m",      0,     inverseTransform(0),          
        tolerance);
diff --git 
a/core/sis-utility/src/main/java/org/apache/sis/measure/NumberRange.java 
b/core/sis-utility/src/main/java/org/apache/sis/measure/NumberRange.java
index 968453c..6d1e207 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/measure/NumberRange.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/measure/NumberRange.java
@@ -513,23 +513,18 @@ public class NumberRange<E extends Number & Comparable<? 
super E>> extends Range
      * @return the adjacent value.
      */
     private static double next(final Class<?> type, double value, final 
boolean up) {
-        if (!up) {
-            value = -value;
-        }
         if (Numbers.isInteger(type)) {
-            value++;
+            if (up) value++; else value--;
         } else if (type.equals(Float.class)) {
-            value = Math.nextUp((float) value);
+            final float fv = (float) value;
+            value = up ? Math.nextUp(fv) : Math.nextDown(fv);
         } else if (type.equals(Double.class)) {
-            value = Math.nextUp(value);
+            value = up ? Math.nextUp(value) : Math.nextDown(value);
         } else {
             // Thrown IllegalStateException instead than 
IllegalArgumentException because
             // the 'type' argument given to this method come from a 
NumberRange field.
             throw new 
IllegalStateException(Errors.format(Errors.Keys.NotAPrimitiveWrapper_1, type));
         }
-        if (!up) {
-            value = -value;
-        }
         return value;
     }
 

Reply via email to