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


The following commit(s) were added to refs/heads/geoapi-4.0 by this push:
     new 8f1fc38  Add test cases for `GeneralEnvelope.get/setTimeRange(…)`.
8f1fc38 is described below

commit 8f1fc38d8fad47c1b0f0aaf6de098101952094f4
Author: Martin Desruisseaux <[email protected]>
AuthorDate: Tue Mar 16 12:39:25 2021 +0100

    Add test cases for `GeneralEnvelope.get/setTimeRange(…)`.
---
 .../org/apache/sis/geometry/EnvelopesTest.java     | 19 +++++++++++++++-
 .../apache/sis/geometry/GeneralEnvelopeTest.java   | 26 ++++++++++++++++++++--
 2 files changed, 42 insertions(+), 3 deletions(-)

diff --git 
a/core/sis-referencing/src/test/java/org/apache/sis/geometry/EnvelopesTest.java 
b/core/sis-referencing/src/test/java/org/apache/sis/geometry/EnvelopesTest.java
index 097192f..0969505 100644
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/geometry/EnvelopesTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/geometry/EnvelopesTest.java
@@ -16,8 +16,10 @@
  */
 package org.apache.sis.geometry;
 
+import java.time.Instant;
 import java.util.List;
 import java.util.Collections;
+import org.apache.sis.measure.Range;
 import org.opengis.geometry.Envelope;
 import org.opengis.util.FactoryException;
 import org.opengis.referencing.crs.SingleCRS;
@@ -45,7 +47,7 @@ import static org.opengis.test.Validators.validate;
  * This class inherits the test methods defined in {@link TransformTestCase}.
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
- * @version 1.0
+ * @version 1.1
  * @since   0.3
  * @module
  */
@@ -285,4 +287,19 @@ public final strictfp class EnvelopesTest extends 
TransformTestCase<GeneralEnvel
         assertEnvelopeEquals(expected, env);
         assertNull("crs.components", env.getCoordinateReferenceSystem());
     }
+
+    /**
+     * Tests {@link Envelopes#toTimeRange(Envelope)}.
+     *
+     * @see GeneralEnvelopeTest#testTimeRange()
+     */
+    @Test
+    public void testToTimeRange() {
+        final GeneralEnvelope envelope = new 
GeneralEnvelope(HardCodedCRS.WGS84_3D_TIME);
+        envelope.setToNaN();
+        envelope.setRange(2, 58840, 59000.75);
+        final Range<Instant> range = Envelopes.toTimeRange(envelope).get();
+        assertEquals(Instant.parse("2019-12-23T00:00:00Z"), 
range.getMinValue());
+        assertEquals(Instant.parse("2020-05-31T18:00:00Z"), 
range.getMaxValue());
+    }
 }
diff --git 
a/core/sis-referencing/src/test/java/org/apache/sis/geometry/GeneralEnvelopeTest.java
 
b/core/sis-referencing/src/test/java/org/apache/sis/geometry/GeneralEnvelopeTest.java
index d5cfba2..0756e05 100644
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/geometry/GeneralEnvelopeTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/geometry/GeneralEnvelopeTest.java
@@ -16,20 +16,22 @@
  */
 package org.apache.sis.geometry;
 
+import java.time.Instant;
 import org.opengis.geometry.Envelope;
 import org.opengis.geometry.DirectPosition;
+import org.apache.sis.measure.Range;
 import org.apache.sis.internal.metadata.AxisNames;
 import org.apache.sis.math.MathFunctions;
 import org.apache.sis.test.DependsOn;
 import org.apache.sis.test.TestCase;
 import org.apache.sis.test.DependsOnMethod;
+import org.apache.sis.referencing.crs.HardCodedCRS;
 import org.junit.Test;
 
 import static java.lang.Double.NaN;
 import static org.opengis.test.Validators.*;
 import static org.apache.sis.test.ReferencingAssert.*;
 import static org.apache.sis.geometry.AbstractEnvelopeTest.WGS84;
-import static org.apache.sis.referencing.crs.HardCodedCRS.GEOID_ZXY;
 
 
 /**
@@ -651,13 +653,33 @@ public strictfp class GeneralEnvelopeTest extends 
TestCase {
     @Test
     public void testHorizontal() {
         GeneralEnvelope envelope = new GeneralEnvelope(new double[] {4, 5, 
-8}, new double[] {8, 7, -3});
-        envelope.setCoordinateReferenceSystem(GEOID_ZXY);
+        envelope.setCoordinateReferenceSystem(HardCodedCRS.GEOID_ZXY);
         envelope = envelope.horizontal();
         assertEnvelopeEquals(envelope, 5, -8, 7, -3);
         assertSame(WGS84, envelope.getCoordinateReferenceSystem());
     }
 
     /**
+     * Tests {@link GeneralEnvelope#getTimeRange()} and {@link 
GeneralEnvelope#setTimeRange(Instant, Instant)}.
+     * The temporal coordinates in this test are days elapsed since November 
17, 1858 at 00:00 UTC.
+     */
+    @Test
+    public void testTimeRange() {
+        final GeneralEnvelope envelope = new 
GeneralEnvelope(HardCodedCRS.WGS84_3D_TIME);
+        envelope.setRange(0, -20, 25);
+        envelope.setRange(1, -30, 12);
+        envelope.setRange(2, 58840, 59000.75);
+        final Range<Instant> range = envelope.getTimeRange().get();
+        assertEquals(Instant.parse("2019-12-23T00:00:00Z"), 
range.getMinValue());
+        assertEquals(Instant.parse("2020-05-31T18:00:00Z"), 
range.getMaxValue());
+
+        envelope.setTimeRange(Instant.parse("2015-04-10T06:00:00Z"),
+                              Instant.parse("2018-12-29T12:00:00Z"));
+        assertArrayEquals(new double[] {-20, -30, 57122.25}, 
envelope.getLowerCorner().getCoordinate(), STRICT);
+        assertArrayEquals(new double[] { 25,  12, 58481.50}, 
envelope.getUpperCorner().getCoordinate(), STRICT);
+    }
+
+    /**
      * Tests the {@link GeneralEnvelope#toString()} method.
      */
     @Test

Reply via email to