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 b3122d44e24bfc96b94c07f937dc7b08f5f5d3bd
Author: Martin Desruisseaux <martin.desruisse...@geomatys.com>
AuthorDate: Sat Feb 10 12:32:14 2024 +0100

    Fix a test case in the handling of wraparound axis in `Envelope2D`.
---
 .../org/apache/sis/geometry/AbstractEnvelope.java  |   2 +
 .../main/org/apache/sis/geometry/Envelope2D.java   |  16 +-
 .../main/org/apache/sis/geometry/package-info.java |   2 +-
 .../sis/referencing/util/CoordinateOperations.java |   4 +
 .../apache/sis/geometry/AbstractEnvelopeTest.java  | 366 ++++++++++-----------
 .../referencing/util/CoordinateOperationsTest.java |  23 +-
 6 files changed, 209 insertions(+), 204 deletions(-)

diff --git 
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/geometry/AbstractEnvelope.java
 
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/geometry/AbstractEnvelope.java
index c12a887cee..6866ab0e52 100644
--- 
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/geometry/AbstractEnvelope.java
+++ 
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/geometry/AbstractEnvelope.java
@@ -239,6 +239,8 @@ public abstract class AbstractEnvelope extends 
FormattableObject implements Enve
      *
      * @param  axis  the axis to test, or {@code null}.
      * @return {@code true} if the range meaning is {@code WRAPAROUND}.
+     *
+     * @see 
org.apache.sis.referencing.util.CoordinateOperations#isWrapAround(CoordinateSystemAxis)
      */
     static boolean isWrapAround(final CoordinateSystemAxis axis) {
         return (axis != null) && axis.getRangeMeaning() == 
RangeMeaning.WRAPAROUND;
diff --git 
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/geometry/Envelope2D.java
 
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/geometry/Envelope2D.java
index 4224ab1e00..976d541ab9 100644
--- 
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/geometry/Envelope2D.java
+++ 
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/geometry/Envelope2D.java
@@ -38,9 +38,6 @@ import static 
org.apache.sis.math.MathFunctions.isNegativeZero;
 import static org.apache.sis.util.ArgumentChecks.ensureDimensionMatches;
 import static org.apache.sis.referencing.util.Formulas.isPoleToPole;
 import static org.apache.sis.geometry.AbstractEnvelope.getAxis;
-import static org.apache.sis.geometry.AbstractEnvelope.getCommonCRS;
-import static org.apache.sis.geometry.AbstractEnvelope.fixSpan;
-import static org.apache.sis.geometry.AbstractEnvelope.fixMedian;
 import static org.apache.sis.geometry.AbstractEnvelope.isWrapAround;
 import static org.apache.sis.geometry.AbstractEnvelope.isNegativeUnsafe;
 
@@ -95,7 +92,7 @@ import 
org.opengis.geometry.MismatchedReferenceSystemException;
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Johann Sorel (Geomatys)
- * @version 1.1
+ * @version 1.5
  *
  * @see GeneralEnvelope
  * @see org.apache.sis.metadata.iso.extent.DefaultGeographicBoundingBox
@@ -180,8 +177,7 @@ public class Envelope2D extends Rectangle2D.Double 
implements Envelope, Emptiabl
     public Envelope2D(final DirectPosition lowerCorner, final DirectPosition 
upperCorner)
             throws MismatchedReferenceSystemException, 
MismatchedDimensionException
     {
-        // The call to getCommonCRS(…) performs a check against null values.
-        this(getCommonCRS(lowerCorner, upperCorner), lowerCorner, upperCorner);
+        this(AbstractEnvelope.getCommonCRS(lowerCorner, upperCorner), 
lowerCorner, upperCorner);
     }
 
     /**
@@ -365,7 +361,9 @@ public class Envelope2D extends Rectangle2D.Double 
implements Envelope, Emptiabl
      */
     @Override
     public DirectPosition2D getUpperCorner() {
-        return new DirectPosition2D(crs, x+width, y+height);
+        return new DirectPosition2D(crs,
+                (x != 0) ? x+width  : width,        // Preserve the sign of 
`width` if -0.0.
+                (y != 0) ? y+height : height);
     }
 
     /**
@@ -457,7 +455,7 @@ public class Envelope2D extends Rectangle2D.Double 
implements Envelope, Emptiabl
         }
         value += 0.5*span;
         if (isNegative(span)) {                                         // 
Special handling for -0.0
-            value = fixMedian(getAxis(crs, dimension), value);
+            value = AbstractEnvelope.fixMedian(getAxis(crs, dimension), value);
         }
         return value;
     }
@@ -479,7 +477,7 @@ public class Envelope2D extends Rectangle2D.Double 
implements Envelope, Emptiabl
             default: throw indexOutOfBounds(dimension);
         }
         if (isNegative(span)) {                                         // 
Special handling for -0.0
-            span = fixSpan(getAxis(crs, dimension), span);
+            span = AbstractEnvelope.fixSpan(getAxis(crs, dimension), span);
         }
         return span;
     }
diff --git 
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/geometry/package-info.java
 
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/geometry/package-info.java
index 369fc198fd..5346ed6cfd 100644
--- 
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/geometry/package-info.java
+++ 
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/geometry/package-info.java
@@ -87,7 +87,7 @@
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Alexis Manin (Geomatys)
- * @version 1.4
+ * @version 1.5
  * @since   0.3
  */
 package org.apache.sis.geometry;
diff --git 
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/util/CoordinateOperations.java
 
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/util/CoordinateOperations.java
index 0488d02543..d9a81f9b9f 100644
--- 
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/util/CoordinateOperations.java
+++ 
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/util/CoordinateOperations.java
@@ -207,9 +207,13 @@ public final class CoordinateOperations extends Static {
     /**
      * Returns {@code true} if the given axis is of kind "Wrap Around".
      * Defined here because used together with {@link #wrapAroundChanges 
wrapAroundChanges(…)}.
+     * This method can be used in contexts of coordinate operations, when the 
caller wants to
+     * be consistent with whatever policy change may happen in the future in 
this class.
      *
      * @param  axis  the axis to test.
      * @return {@code true} if the given axis has "wrap around" range meaning.
+     *
+     * @see 
org.apache.sis.geometry.AbstractEnvelope#isWrapAround(CoordinateSystemAxis)
      */
     public static boolean isWrapAround(final CoordinateSystemAxis axis) {
         return axis.getRangeMeaning() == RangeMeaning.WRAPAROUND;
diff --git 
a/endorsed/src/org.apache.sis.referencing/test/org/apache/sis/geometry/AbstractEnvelopeTest.java
 
b/endorsed/src/org.apache.sis.referencing/test/org/apache/sis/geometry/AbstractEnvelopeTest.java
index f502c75b48..c38afd5e6c 100644
--- 
a/endorsed/src/org.apache.sis.referencing/test/org/apache/sis/geometry/AbstractEnvelopeTest.java
+++ 
b/endorsed/src/org.apache.sis.referencing/test/org/apache/sis/geometry/AbstractEnvelopeTest.java
@@ -23,7 +23,7 @@ import org.opengis.geometry.DirectPosition;
 
 // Test dependencies
 import org.junit.Test;
-import static org.junit.Assert.*;
+import static org.junit.jupiter.api.Assertions.*;
 import static org.opengis.test.Validators.validate;
 import org.apache.sis.test.TestCase;
 import org.apache.sis.test.DependsOn;
@@ -64,7 +64,7 @@ public final class AbstractEnvelopeTest extends TestCase {
         final Envelope envelope;
         switch (type) {
             case GENERAL: {
-                final GeneralEnvelope ge = new GeneralEnvelope(2);
+                final var ge = new GeneralEnvelope(2);
                 ge.setCoordinateReferenceSystem(WGS84);
                 ge.setRange(0, xmin, xmax);
                 ge.setRange(1, ymin, ymax);
@@ -80,7 +80,7 @@ public final class AbstractEnvelopeTest extends TestCase {
                 break;
             }
             case SUBENVELOPE: {
-                GeneralEnvelope ge = new GeneralEnvelope(5);
+                var ge = new GeneralEnvelope(5);
                 ge.setRange(1, xmin, xmax);
                 ge.setRange(2, ymin, ymax);
                 ge.setRange(0, 2, 3);               // Following values will 
be verified in verifyInvariants(…)
@@ -108,12 +108,12 @@ public final class AbstractEnvelopeTest extends TestCase {
             case SUBENVELOPE: {
                 // Asserts that other dimensions in the original envelope has 
not been modified.
                 final double[] coordinates = ((SubEnvelope) 
envelope).coordinates;
-                assertEquals(2, coordinates[0], STRICT);
-                assertEquals(3, coordinates[5], STRICT);
-                assertEquals(4, coordinates[3], STRICT);
-                assertEquals(6, coordinates[8], STRICT);
-                assertEquals(8, coordinates[4], STRICT);
-                assertEquals(9, coordinates[9], STRICT);
+                assertEquals(2, coordinates[0]);
+                assertEquals(3, coordinates[5]);
+                assertEquals(4, coordinates[3]);
+                assertEquals(6, coordinates[8]);
+                assertEquals(8, coordinates[4]);
+                assertEquals(9, coordinates[9]);
                 break;
             }
         }
@@ -130,39 +130,39 @@ public final class AbstractEnvelopeTest extends TestCase {
      */
     @Test
     public void testSimpleEnvelope() {
-        final DirectPosition2D inside  = new DirectPosition2D( 3, 32);
-        final DirectPosition2D outside = new DirectPosition2D(-5, 32);
-        final Envelope2D contained = (Envelope2D) create(RECTANGLE, -2, 10, 
35, 40);
-        final Envelope2D intersect = (Envelope2D) create(RECTANGLE, -2, 16, 
35, 40);
+        final var inside    = new DirectPosition2D( 3, 32);
+        final var outside   = new DirectPosition2D(-5, 32);
+        final var contained = (Envelope2D) create(RECTANGLE, -2, 10, 35, 40);
+        final var intersect = (Envelope2D) create(RECTANGLE, -2, 16, 35, 40);
         final Envelope2D disjoint  = (Envelope2D) create(RECTANGLE, 14, 16, 
35, 40);
         for (int type=0; type<LAST; type++) {
             final String label = "Type " + type;
             final Envelope envelope = create(type, -4, 12, 30, 50);
-            assertEquals(label, 30, envelope.getMinimum(1), STRICT);
-            assertEquals(label, 50, envelope.getMaximum(1), STRICT);
-            assertEquals(label, 40, envelope.getMedian (1), STRICT);
-            assertEquals(label, 20, envelope.getSpan   (1), STRICT);
-            assertEquals(label, -4, envelope.getMinimum(0), STRICT);
-            assertEquals(label, 12, envelope.getMaximum(0), STRICT);
-            assertEquals(label,  4, envelope.getMedian (0), STRICT);
-            assertEquals(label, 16, envelope.getSpan   (0), STRICT);
+            assertEquals(30, envelope.getMinimum(1), label);
+            assertEquals(50, envelope.getMaximum(1), label);
+            assertEquals(40, envelope.getMedian (1), label);
+            assertEquals(20, envelope.getSpan   (1), label);
+            assertEquals(-4, envelope.getMinimum(0), label);
+            assertEquals(12, envelope.getMaximum(0), label);
+            assertEquals( 4, envelope.getMedian (0), label);
+            assertEquals(16, envelope.getSpan   (0), label);
             switch (type) {
                 default: {
-                    final AbstractEnvelope ext = (AbstractEnvelope) envelope;
-                    assertTrue (label, ext.contains  (inside));
-                    assertFalse(label, ext.contains  (outside));
-                    assertFalse(label, ext.contains  (intersect, false));
-                    assertTrue (label, ext.intersects(intersect, false));
+                    final var ext = (AbstractEnvelope) envelope;
+                    assertTrue (ext.contains  (inside),           label);
+                    assertFalse(ext.contains  (outside),          label);
+                    assertFalse(ext.contains  (intersect, false), label);
+                    assertTrue (ext.intersects(intersect, false), label);
                     assertDisjoint(ext, disjoint);
                     assertContains(ext, contained);
                     break;
                 }
                 case RECTANGLE: {
-                    final Rectangle2D ext = (Rectangle2D) envelope;
-                    assertTrue (label, ext.contains  (inside));
-                    assertFalse(label, ext.contains  (outside));
-                    assertFalse(label, ext.contains  (intersect));
-                    assertTrue (label, ext.intersects(intersect));
+                    final var ext = (Rectangle2D) envelope;
+                    assertTrue (ext.contains  (inside),    label);
+                    assertFalse(ext.contains  (outside),   label);
+                    assertFalse(ext.contains  (intersect), label);
+                    assertTrue (ext.intersects(intersect), label);
                     assertDisjoint(ext, disjoint);
                     assertContains(ext, contained);
                     break;
@@ -183,45 +183,45 @@ public final class AbstractEnvelopeTest extends TestCase {
      */
     @Test
     public void testCrossingAntiMeridian() {
-        final DirectPosition2D inside  = new DirectPosition2D(18, 32);
-        final DirectPosition2D outside = new DirectPosition2D( 3, 32);
-        final Envelope2D contained  = (Envelope2D) create(RECTANGLE, 14, 16, 
35, 40);
-        final Envelope2D intersect  = (Envelope2D) create(RECTANGLE, -2, 16, 
35, 40);
-        final Envelope2D disjoint   = (Envelope2D) create(RECTANGLE, -2, 10, 
35, 40);
-        final Envelope2D spanning   = (Envelope2D) create(RECTANGLE, 16, -8, 
35, 40);
+        final var inside     = new DirectPosition2D(18, 32);
+        final var outside    = new DirectPosition2D( 3, 32);
+        final var contained  = (Envelope2D) create(RECTANGLE, 14, 16, 35, 40);
+        final var intersect  = (Envelope2D) create(RECTANGLE, -2, 16, 35, 40);
+        final var disjoint   = (Envelope2D) create(RECTANGLE, -2, 10, 35, 40);
+        final var spanning   = (Envelope2D) create(RECTANGLE, 16, -8, 35, 40);
         for (int type=0; type<LAST; type++) {
             final String label = "Type " + type;
             final Envelope envelope = create(type, 12, -4, 30, 50);
             final DirectPosition lower = envelope.getLowerCorner();
             final DirectPosition upper = envelope.getUpperCorner();
-            assertEquals(label,   30, envelope.getMinimum (1), STRICT);
-            assertEquals(label,   50, envelope.getMaximum (1), STRICT);
-            assertEquals(label,   40, envelope.getMedian  (1), STRICT);
-            assertEquals(label,   20, envelope.getSpan    (1), STRICT);
-            assertEquals(label,   12, lower   .getOrdinate(0), STRICT);
-            assertEquals(label, -180, envelope.getMinimum (0), STRICT);
-            assertEquals(label,   -4, upper   .getOrdinate(0), STRICT);
-            assertEquals(label, +180, envelope.getMaximum (0), STRICT);
-            assertEquals(label, -176, envelope.getMedian  (0), STRICT);
-            assertEquals(label,  344, envelope.getSpan    (0), STRICT);        
 // 360° - testSimpleEnvelope()
+            assertEquals(  30, envelope.getMinimum (1), label);
+            assertEquals(  50, envelope.getMaximum (1), label);
+            assertEquals(  40, envelope.getMedian  (1), label);
+            assertEquals(  20, envelope.getSpan    (1), label);
+            assertEquals(  12, lower   .getOrdinate(0), label);
+            assertEquals(-180, envelope.getMinimum (0), label);
+            assertEquals(  -4, upper   .getOrdinate(0), label);
+            assertEquals(+180, envelope.getMaximum (0), label);
+            assertEquals(-176, envelope.getMedian  (0), label);
+            assertEquals( 344, envelope.getSpan    (0), label);         // 
360° - testSimpleEnvelope()
             switch (type) {
                 default: {
-                    final AbstractEnvelope ext = (AbstractEnvelope) envelope;
-                    assertTrue (label, ext.contains  (inside));
-                    assertFalse(label, ext.contains  (outside));
-                    assertFalse(label, ext.contains  (intersect, false));
-                    assertTrue (label, ext.intersects(intersect, false));
+                    final var ext = (AbstractEnvelope) envelope;
+                    assertTrue (ext.contains  (inside),           label);
+                    assertFalse(ext.contains  (outside),          label);
+                    assertFalse(ext.contains  (intersect, false), label);
+                    assertTrue (ext.intersects(intersect, false), label);
                     assertDisjoint(ext, disjoint);
                     assertContains(ext, contained);
                     assertContains(ext, spanning);
                     break;
                 }
                 case RECTANGLE: {
-                    final Rectangle2D ext = (Rectangle2D) envelope;
-                    assertTrue (label, ext.contains  (inside));
-                    assertFalse(label, ext.contains  (outside));
-                    assertFalse(label, ext.contains  (intersect));
-                    assertTrue (label, ext.intersects(intersect));
+                    final var ext = (Rectangle2D) envelope;
+                    assertTrue (ext.contains  (inside),    label);
+                    assertFalse(ext.contains  (outside),   label);
+                    assertFalse(ext.contains  (intersect), label);
+                    assertTrue (ext.intersects(intersect), label);
                     assertDisjoint(ext, disjoint);
                     assertContains(ext, contained);
                     assertContains(ext, spanning);
@@ -244,47 +244,47 @@ public final class AbstractEnvelopeTest extends TestCase {
      */
     @Test
     public void testCrossingAntiMeridianTwice() {
-        final DirectPosition2D inside  = new DirectPosition2D(18, 32);
-        final DirectPosition2D outside = new DirectPosition2D( 3, 32);
-        final Envelope2D contained  = (Envelope2D) create(RECTANGLE, 14, 16, 
35, 40);
-        final Envelope2D intersect  = (Envelope2D) create(RECTANGLE, -2, 16, 
35, 40);
-        final Envelope2D disjoint   = (Envelope2D) create(RECTANGLE, -2, 10, 
35, 40);
-        final Envelope2D spanning   = (Envelope2D) create(RECTANGLE, 16, -8, 
35, 40);
+        final var inside     = new DirectPosition2D(18, 32);
+        final var outside    = new DirectPosition2D( 3, 32);
+        final var contained  = (Envelope2D) create(RECTANGLE, 14, 16, 35, 40);
+        final var intersect  = (Envelope2D) create(RECTANGLE, -2, 16, 35, 40);
+        final var disjoint   = (Envelope2D) create(RECTANGLE, -2, 10, 35, 40);
+        final var spanning   = (Envelope2D) create(RECTANGLE, 16, -8, 35, 40);
         for (int type=0; type<LAST; type++) {
             final String label = "Type " + type;
             final Envelope envelope = create(type, 12, -364, 30, 50);
             final DirectPosition lower = envelope.getLowerCorner();
             final DirectPosition upper = envelope.getUpperCorner();
-            assertEquals(label,   30, envelope.getMinimum (1), STRICT);
-            assertEquals(label,   50, envelope.getMaximum (1), STRICT);
-            assertEquals(label,   40, envelope.getMedian  (1), STRICT);
-            assertEquals(label,   20, envelope.getSpan    (1), STRICT);
-            assertEquals(label,   12, lower   .getOrdinate(0), STRICT);
-            assertEquals(label, -180, envelope.getMinimum (0), STRICT);
-            assertEquals(label, -364, upper   .getOrdinate(0), STRICT);
-            assertEquals(label, +180, envelope.getMaximum (0), STRICT);
-            assertEquals(label,    4, envelope.getMedian  (0), STRICT);     // 
Note the alternance with the previous test methods.
-            assertEquals(label,  NaN, envelope.getSpan    (0), STRICT);     // 
testCrossingAntiMeridian() + 360°.
+            assertEquals(  30, envelope.getMinimum (1), label);
+            assertEquals(  50, envelope.getMaximum (1), label);
+            assertEquals(  40, envelope.getMedian  (1), label);
+            assertEquals(  20, envelope.getSpan    (1), label);
+            assertEquals(  12, lower   .getOrdinate(0), label);
+            assertEquals(-180, envelope.getMinimum (0), label);
+            assertEquals(-364, upper   .getOrdinate(0), label);
+            assertEquals(+180, envelope.getMaximum (0), label);
+            assertEquals(   4, envelope.getMedian  (0), label);     // Note 
the alternance with the previous test methods.
+            assertEquals( NaN, envelope.getSpan    (0), label);     // 
testCrossingAntiMeridian() + 360°.
             if (envelope instanceof AbstractEnvelope) {
-                final AbstractEnvelope ext = (AbstractEnvelope) envelope;
-                assertTrue (label, ext.contains  (inside));
-                assertFalse(label, ext.contains  (outside));
-                assertFalse(label, ext.contains  (intersect, false));
-                assertTrue (label, ext.intersects(intersect, false));
-                assertFalse(label, ext.contains  (spanning,  false));
-                assertTrue (label, ext.intersects(spanning,  false));
+                final var ext = (AbstractEnvelope) envelope;
+                assertTrue (ext.contains  (inside),           label);
+                assertFalse(ext.contains  (outside),          label);
+                assertFalse(ext.contains  (intersect, false), label);
+                assertTrue (ext.intersects(intersect, false), label);
+                assertFalse(ext.contains  (spanning,  false), label);
+                assertTrue (ext.intersects(spanning,  false), label);
                 assertDisjoint(ext, disjoint);
                 assertContains(ext, contained);
                 break;
             }
             if (envelope instanceof Rectangle2D) {
-                final Rectangle2D ext = (Rectangle2D) envelope;
-                assertTrue (label, ext.contains  (inside));
-                assertFalse(label, ext.contains  (outside));
-                assertFalse(label, ext.contains  (intersect));
-                assertTrue (label, ext.intersects(intersect));
-                assertFalse(label, ext.contains  (spanning));
-                assertTrue (label, ext.intersects(spanning));
+                final var ext = (Rectangle2D) envelope;
+                assertTrue (ext.contains  (inside),    label);
+                assertFalse(ext.contains  (outside),   label);
+                assertFalse(ext.contains  (intersect), label);
+                assertTrue (ext.intersects(intersect), label);
+                assertFalse(ext.contains  (spanning),  label);
+                assertTrue (ext.intersects(spanning),  label);
                 assertDisjoint(ext, disjoint);
                 assertContains(ext, contained);
                 break;
@@ -299,45 +299,45 @@ public final class AbstractEnvelopeTest extends TestCase {
      */
     @Test
     public void testCrossingAntiMeridianThreeTimes() {
-        final DirectPosition2D wasInside = new DirectPosition2D(18, 32);
-        final DirectPosition2D outside   = new DirectPosition2D( 3, 32);
-        final Envelope2D wasContained = (Envelope2D) create(RECTANGLE, 14, 16, 
35, 40);
-        final Envelope2D wasIntersect = (Envelope2D) create(RECTANGLE, -2, 16, 
35, 40);
-        final Envelope2D disjoint     = (Envelope2D) create(RECTANGLE, -2, 10, 
35, 40);
-        final Envelope2D spanning     = (Envelope2D) create(RECTANGLE, 16, -8, 
35, 40);
+        final var wasInside    = new DirectPosition2D(18, 32);
+        final var outside      = new DirectPosition2D( 3, 32);
+        final var wasContained = (Envelope2D) create(RECTANGLE, 14, 16, 35, 
40);
+        final var wasIntersect = (Envelope2D) create(RECTANGLE, -2, 16, 35, 
40);
+        final var disjoint     = (Envelope2D) create(RECTANGLE, -2, 10, 35, 
40);
+        final var spanning     = (Envelope2D) create(RECTANGLE, 16, -8, 35, 
40);
         for (int type=0; type<LAST; type++) {
             final String label = "Type " + type;
             final Envelope envelope = create(type, 372, -364, 30, 50);
             final DirectPosition lower = envelope.getLowerCorner();
             final DirectPosition upper = envelope.getUpperCorner();
-            assertEquals(label,   30, envelope.getMinimum (1), STRICT);
-            assertEquals(label,   50, envelope.getMaximum (1), STRICT);
-            assertEquals(label,   40, envelope.getMedian  (1), STRICT);
-            assertEquals(label,   20, envelope.getSpan    (1), STRICT);
-            assertEquals(label,  372, lower   .getOrdinate(0), STRICT);
-            assertEquals(label, -180, envelope.getMinimum (0), STRICT);
-            assertEquals(label, -364, upper   .getOrdinate(0), STRICT);
-            assertEquals(label, +180, envelope.getMaximum (0), STRICT);
-            assertEquals(label, -176, envelope.getMedian  (0), STRICT);     // 
Note the alternance with the previous test methods.
-            assertEquals(label,  NaN, envelope.getSpan    (0), STRICT);     // 
testCrossingAntiMeridianTwice() + 360°.
+            assertEquals(  30, envelope.getMinimum (1), label);
+            assertEquals(  50, envelope.getMaximum (1), label);
+            assertEquals(  40, envelope.getMedian  (1), label);
+            assertEquals(  20, envelope.getSpan    (1), label);
+            assertEquals( 372, lower   .getOrdinate(0), label);
+            assertEquals(-180, envelope.getMinimum (0), label);
+            assertEquals(-364, upper   .getOrdinate(0), label);
+            assertEquals(+180, envelope.getMaximum (0), label);
+            assertEquals(-176, envelope.getMedian  (0), label);     // Note 
the alternance with the previous test methods.
+            assertEquals( NaN, envelope.getSpan    (0), label);     // 
testCrossingAntiMeridianTwice() + 360°.
             switch (type) {
                 default: {
-                    final AbstractEnvelope ext = (AbstractEnvelope) envelope;
-                    assertFalse(label, ext.contains  (wasInside));
-                    assertFalse(label, ext.contains  (outside));
-                    assertFalse(label, ext.contains  (spanning,  false));
-                    assertTrue (label, ext.intersects(spanning,  false));
+                    final var ext = (AbstractEnvelope) envelope;
+                    assertFalse(ext.contains  (wasInside),       label);
+                    assertFalse(ext.contains  (outside),         label);
+                    assertFalse(ext.contains  (spanning, false), label);
+                    assertTrue (ext.intersects(spanning, false), label);
                     assertDisjoint(ext, wasIntersect);
                     assertDisjoint(ext, disjoint);
                     assertDisjoint(ext, wasContained);
                     break;
                 }
                 case RECTANGLE: {
-                    final Rectangle2D ext = (Rectangle2D) envelope;
-                    assertFalse(label, ext.contains  (wasInside));
-                    assertFalse(label, ext.contains  (outside));
-                    assertFalse(label, ext.contains  (spanning));
-                    assertTrue (label, ext.intersects(spanning));
+                    final var ext = (Rectangle2D) envelope;
+                    assertFalse(ext.contains  (wasInside), label);
+                    assertFalse(ext.contains  (outside),   label);
+                    assertFalse(ext.contains  (spanning),  label);
+                    assertTrue (ext.intersects(spanning),  label);
                     assertDisjoint(ext, wasIntersect);
                     assertDisjoint(ext, disjoint);
                     assertDisjoint(ext, wasContained);
@@ -353,44 +353,44 @@ public final class AbstractEnvelopeTest extends TestCase {
      */
     @Test
     public void testRange0() {
-        final DirectPosition2D wasInside = new DirectPosition2D(18, 32);
-        final DirectPosition2D outside   = new DirectPosition2D( 3, 32);
-        final Envelope2D wasContained = (Envelope2D) create(RECTANGLE, 14, 16, 
35, 40);
-        final Envelope2D intersect    = (Envelope2D) create(RECTANGLE, -2, 16, 
35, 40);
-        final Envelope2D spanning     = (Envelope2D) create(RECTANGLE, 16, -8, 
35, 40);
+        final var wasInside    = new DirectPosition2D(18, 32);
+        final var outside      = new DirectPosition2D( 3, 32);
+        final var wasContained = (Envelope2D) create(RECTANGLE, 14, 16, 35, 
40);
+        final var intersect    = (Envelope2D) create(RECTANGLE, -2, 16, 35, 
40);
+        final var spanning     = (Envelope2D) create(RECTANGLE, 16, -8, 35, 
40);
         for (int type=0; type<LAST; type++) {
             final String label = "Type " + type;
             final Envelope envelope = create(type, -0.0, 0.0, 30, 50);
-            assertEquals(label,   30, envelope.getMinimum(1), STRICT);
-            assertEquals(label,   50, envelope.getMaximum(1), STRICT);
-            assertEquals(label,   40, envelope.getMedian (1), STRICT);
-            assertEquals(label,   20, envelope.getSpan   (1), STRICT);
-            assertEquals(label, -0.0, envelope.getMinimum(0), STRICT);
-            assertEquals(label,  0.0, envelope.getMaximum(0), STRICT);
-            assertEquals(label,    0, envelope.getMedian (0), STRICT);
-            assertEquals(label,    0, envelope.getSpan   (0), STRICT);
+            assertEquals(  30, envelope.getMinimum(1), label);
+            assertEquals(  50, envelope.getMaximum(1), label);
+            assertEquals(  40, envelope.getMedian (1), label);
+            assertEquals(  20, envelope.getSpan   (1), label);
+            assertEquals(-0.0, envelope.getMinimum(0), label);
+            assertEquals( 0.0, envelope.getMaximum(0), label);
+            assertEquals(   0, envelope.getMedian (0), label);
+            assertEquals(   0, envelope.getSpan   (0), label);
             switch (type) {
                 default: {
-                    final AbstractEnvelope ext = (AbstractEnvelope) envelope;
-                    assertFalse(label, ext.contains  (wasInside));
-                    assertFalse(label, ext.contains  (outside));
-                    assertFalse(label, ext.contains  (intersect, false));
-                    assertTrue (label, ext.intersects(intersect, false));
-                    assertFalse(label, ext.contains  (spanning,  false));
-                    assertFalse(label, ext.intersects(spanning,  false));
-                    assertFalse(label, ext.intersects(spanning,  false));
+                    final var ext = (AbstractEnvelope) envelope;
+                    assertFalse(ext.contains  (wasInside),        label);
+                    assertFalse(ext.contains  (outside),          label);
+                    assertFalse(ext.contains  (intersect, false), label);
+                    assertTrue (ext.intersects(intersect, false), label);
+                    assertFalse(ext.contains  (spanning,  false), label);
+                    assertFalse(ext.intersects(spanning,  false), label);
+                    assertFalse(ext.intersects(spanning,  false), label);
                     assertDisjoint(ext, wasContained);
                     break;
                 }
                 case RECTANGLE: {
-                    final Rectangle2D ext = (Rectangle2D) envelope;
-                    assertFalse(label, ext.contains  (wasInside));
-                    assertFalse(label, ext.contains  (outside));
-                    assertFalse(label, ext.contains  (intersect));
-                    assertTrue (label, ext.intersects(intersect));
-                    assertFalse(label, ext.contains  (spanning));
-                    assertFalse(label, ext.intersects(spanning));
-                    assertFalse(label, ext.intersects(spanning));
+                    final var ext = (Rectangle2D) envelope;
+                    assertFalse(ext.contains  (wasInside), label);
+                    assertFalse(ext.contains  (outside),   label);
+                    assertFalse(ext.contains  (intersect), label);
+                    assertTrue (ext.intersects(intersect), label);
+                    assertFalse(ext.contains  (spanning),  label);
+                    assertFalse(ext.intersects(spanning),  label);
+                    assertFalse(ext.intersects(spanning),  label);
                     assertDisjoint(ext, wasContained);
                     break;
                 }
@@ -400,45 +400,45 @@ public final class AbstractEnvelopeTest extends TestCase {
     }
 
     /**
-     * Tests a case crossing the anti-meridian crossing, from 0° to -0°.
+     * Tests a case crossing the anti-meridian, from 0° to -0°.
      */
     @Test
     public void testRange360() {
-        final DirectPosition2D inside     = new DirectPosition2D(18, 32);
-        final DirectPosition2D wasOutside = new DirectPosition2D( 3, 32);
-        final Envelope2D contained = (Envelope2D) create(RECTANGLE, 14, 16, 
35, 40);
-        final Envelope2D intersect = (Envelope2D) create(RECTANGLE, -2, 16, 
35, 40);
-        final Envelope2D spanning  = (Envelope2D) create(RECTANGLE, 16, -8, 
35, 40);
+        final var inside     = new DirectPosition2D(18, 32);
+        final var wasOutside = new DirectPosition2D( 3, 32);
+        final var contained  = (Envelope2D) create(RECTANGLE, 14, 16, 35, 40);
+        final var intersect  = (Envelope2D) create(RECTANGLE, -2, 16, 35, 40);
+        final var spanning   = (Envelope2D) create(RECTANGLE, 16, -8, 35, 40);
         for (int type=0; type<LAST; type++) {
             final String label = "Type " + type;
             final Envelope envelope = create(type, 0.0, -0.0, 30, 50);
             final DirectPosition lower = envelope.getLowerCorner();
             final DirectPosition upper = envelope.getUpperCorner();
-            assertEquals(label,   30, envelope.getMinimum (1), STRICT);
-            assertEquals(label,   50, envelope.getMaximum (1), STRICT);
-            assertEquals(label,   40, envelope.getMedian  (1), STRICT);
-            assertEquals(label,   20, envelope.getSpan    (1), STRICT);
-            assertEquals(label,  0.0, lower   .getOrdinate(0), STRICT);
-            assertEquals(label, -180, envelope.getMinimum (0), STRICT);
-            assertEquals(label, -0.0, upper   .getOrdinate(0), STRICT);
-            assertEquals(label, +180, envelope.getMaximum (0), STRICT);
-            assertEquals(label,  180, envelope.getMedian  (0), STRICT);
-            assertEquals(label,  360, envelope.getSpan    (0), STRICT);
+            assertEquals(  30, envelope.getMinimum (1), label);
+            assertEquals(  50, envelope.getMaximum (1), label);
+            assertEquals(  40, envelope.getMedian  (1), label);
+            assertEquals(  20, envelope.getSpan    (1), label);
+            assertEquals( 0.0, lower   .getOrdinate(0), label);
+            assertEquals(-180, envelope.getMinimum (0), label);
+            assertEquals(-0.0, upper   .getOrdinate(0), label);
+            assertEquals(+180, envelope.getMaximum (0), label);
+            assertEquals( 180, envelope.getMedian  (0), label);
+            assertEquals( 360, envelope.getSpan    (0), label);
             switch (type) {
                 default: {
-                    final AbstractEnvelope ext = (AbstractEnvelope) envelope;
-                    assertTrue(label, ext.contains(inside));
-                    assertTrue(label, ext.contains(wasOutside));
-                    assertTrue(label, ext.intersects(intersect, false));
+                    final var ext = (AbstractEnvelope) envelope;
+                    assertTrue(ext.contains(inside), label);
+                    assertTrue(ext.contains(wasOutside), label);
+                    assertTrue(ext.intersects(intersect, false), label);
                     assertContains(ext, contained);
                     assertContains(ext, spanning);
                     break;
                 }
                 case RECTANGLE: {
-                    final Rectangle2D ext = (Rectangle2D) envelope;
-                    assertTrue(label, ext.contains(inside));
-                    assertTrue(label, ext.contains(wasOutside));
-                    assertTrue(label, ext.intersects(intersect));
+                    final var ext = (Rectangle2D) envelope;
+                    assertTrue(ext.contains(inside),      label);
+                    assertTrue(ext.contains(wasOutside),  label);
+                    assertTrue(ext.intersects(intersect), label);
                     assertContains(ext, contained);
                     assertContains(ext, spanning);
                     break;
@@ -455,7 +455,7 @@ public final class AbstractEnvelopeTest extends TestCase {
     public void testToSimpleEnvelopesOnEmptyEnvelope() {
         for (int type=0; type<LAST; type++) {
             if (type != RECTANGLE) {
-                final AbstractEnvelope envelope = (AbstractEnvelope) 
create(type, 0, 0, 0, 0);
+                final var envelope = (AbstractEnvelope) create(type, 0, 0, 0, 
0);
                 assertEquals(0, envelope.toSimpleEnvelopes().length);
             }
         }
@@ -469,7 +469,7 @@ public final class AbstractEnvelopeTest extends TestCase {
     public void testToSimpleEnvelopesOnSimpleEnvelope() {
         for (int type=0; type<LAST; type++) {
             if (type != RECTANGLE) {
-                final AbstractEnvelope envelope = (AbstractEnvelope) 
create(type, -20, 30, -10, 15);
+                final var envelope = (AbstractEnvelope) create(type, -20, 30, 
-10, 15);
                 final Envelope[] simples = envelope.toSimpleEnvelopes();
                 assertEquals(1, simples.length);
                 assertSame(envelope, simples[0]);
@@ -485,25 +485,25 @@ public final class AbstractEnvelopeTest extends TestCase {
     public void testToSimpleEnvelopesOverAntiMeridian() {
         for (int type=0; type<LAST; type++) {
             if (type != RECTANGLE) {
-                final AbstractEnvelope envelope = (AbstractEnvelope) 
create(type, 155, -150, 0, 50);
+                final var envelope = (AbstractEnvelope) create(type, 155, 
-150, 0, 50);
                 final Envelope[] simples = envelope.toSimpleEnvelopes();
                 assertEquals(2, simples.length);
-                final AbstractEnvelope e0 = (AbstractEnvelope) simples[0];
-                final AbstractEnvelope e1 = (AbstractEnvelope) simples[1];
+                final var e0 = (AbstractEnvelope) simples[0];
+                final var e1 = (AbstractEnvelope) simples[1];
 
-                assertEquals( 155.0, e0.getLower(0), STRICT);
-                assertEquals(   0.0, e0.getLower(1), STRICT);
-                assertEquals( 180.0, e0.getUpper(0), STRICT);
-                assertEquals(  50.0, e0.getUpper(1), STRICT);
-                assertEquals(  25.0, e0.getSpan (0), STRICT);
-                assertEquals(  50.0, e0.getSpan (1), STRICT);
+                assertEquals( 155.0, e0.getLower(0));
+                assertEquals(   0.0, e0.getLower(1));
+                assertEquals( 180.0, e0.getUpper(0));
+                assertEquals(  50.0, e0.getUpper(1));
+                assertEquals(  25.0, e0.getSpan (0));
+                assertEquals(  50.0, e0.getSpan (1));
 
-                assertEquals(-180.0, e1.getLower(0), STRICT);
-                assertEquals(   0.0, e1.getLower(1), STRICT);
-                assertEquals(-150.0, e1.getUpper(0), STRICT);
-                assertEquals(  50.0, e1.getUpper(1), STRICT);
-                assertEquals(  30.0, e1.getSpan (0), STRICT);
-                assertEquals(  50.0, e1.getSpan (1), STRICT);
+                assertEquals(-180.0, e1.getLower(0));
+                assertEquals(   0.0, e1.getLower(1));
+                assertEquals(-150.0, e1.getUpper(0));
+                assertEquals(  50.0, e1.getUpper(1));
+                assertEquals(  30.0, e1.getSpan (0));
+                assertEquals(  50.0, e1.getSpan (1));
             }
         }
     }
diff --git 
a/endorsed/src/org.apache.sis.referencing/test/org/apache/sis/referencing/util/CoordinateOperationsTest.java
 
b/endorsed/src/org.apache.sis.referencing/test/org/apache/sis/referencing/util/CoordinateOperationsTest.java
index 2ea86d6915..45799bd97d 100644
--- 
a/endorsed/src/org.apache.sis.referencing/test/org/apache/sis/referencing/util/CoordinateOperationsTest.java
+++ 
b/endorsed/src/org.apache.sis.referencing/test/org/apache/sis/referencing/util/CoordinateOperationsTest.java
@@ -24,7 +24,7 @@ import org.apache.sis.referencing.cs.AxesConvention;
 
 // Test dependencies
 import org.junit.Test;
-import static org.junit.Assert.*;
+import static org.junit.jupiter.api.Assertions.*;
 import org.apache.sis.test.TestCase;
 import org.apache.sis.test.DependsOnMethod;
 import org.apache.sis.referencing.cs.HardCodedAxes;
@@ -50,9 +50,9 @@ public final class CoordinateOperationsTest extends TestCase {
      */
     @Test
     public void testIsWrapAround() {
-        assertFalse("GEODETIC_LATITUDE",  
CoordinateOperations.isWrapAround(HardCodedAxes.GEODETIC_LATITUDE));
-        assertTrue ("GEODETIC_LONGITUDE", 
CoordinateOperations.isWrapAround(HardCodedAxes.GEODETIC_LONGITUDE));
-        assertFalse("ELLIPSOIDAL_HEIGHT", 
CoordinateOperations.isWrapAround(HardCodedAxes.ELLIPSOIDAL_HEIGHT));
+        
assertFalse(CoordinateOperations.isWrapAround(HardCodedAxes.GEODETIC_LATITUDE));
+        assertTrue 
(CoordinateOperations.isWrapAround(HardCodedAxes.GEODETIC_LONGITUDE));
+        
assertFalse(CoordinateOperations.isWrapAround(HardCodedAxes.ELLIPSOIDAL_HEIGHT));
     }
 
     /**
@@ -63,19 +63,20 @@ public final class CoordinateOperationsTest extends 
TestCase {
     public void testWrapAroundChanges() {
         CoordinateReferenceSystem sourceCRS = HardCodedCRS.WGS84_3D;
         CoordinateSystem          targetCS = HardCodedCS.GEODETIC_2D;
-        assertTrue("(λ,φ,h) → (λ,φ)", 
CoordinateOperations.wrapAroundChanges(sourceCRS, targetCS).isEmpty());
+        assertTrue(CoordinateOperations.wrapAroundChanges(sourceCRS, 
targetCS).isEmpty(),
+                   "(λ,φ,h) → (λ,φ)");
 
         sourceCRS = 
HardCodedCRS.WGS84_3D.forConvention(AxesConvention.POSITIVE_RANGE);
-        assertArrayEquals("(λ′,φ,h) → (λ,φ)", new Integer[] {0},
-                CoordinateOperations.wrapAroundChanges(sourceCRS, 
targetCS).toArray());
+        assertArrayEquals(new Integer[] {0}, 
CoordinateOperations.wrapAroundChanges(sourceCRS, targetCS).toArray(),
+                          "(λ′,φ,h) → (λ,φ)");
 
         targetCS = HardCodedCS.GEODETIC_φλ;
-        assertArrayEquals("(λ′,φ,h) → (φ,λ)", new Integer[] {1},
-                CoordinateOperations.wrapAroundChanges(sourceCRS, 
targetCS).toArray());
+        assertArrayEquals(new Integer[] {1}, 
CoordinateOperations.wrapAroundChanges(sourceCRS, targetCS).toArray(),
+                          "(λ′,φ,h) → (φ,λ)");
 
         sourceCRS = HardCodedConversions.mercator((GeographicCRS) sourceCRS);
-        assertArrayEquals("(λ′,φ,h) → (φ,λ)", new Integer[] {1},
-                CoordinateOperations.wrapAroundChanges(sourceCRS, 
targetCS).toArray());
+        assertArrayEquals(new Integer[] {1}, 
CoordinateOperations.wrapAroundChanges(sourceCRS, targetCS).toArray(),
+                          "(λ′,φ,h) → (φ,λ)");
 
     }
 }


Reply via email to