You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sis.apache.org by de...@apache.org on 2023/06/05 09:03:31 UTC

[sis] branch master updated (7cb56fed2e -> fc71c638d0)

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

desruisseaux pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/sis.git


    from 7cb56fed2e Merge branch 'geoapi-3.1'.
     add 756a5e0ea3 Avoid start imports of `org.opengis.test.Assert` static methods. This is in anticipation for a fix equivalent to SIS-579 in GeoAPI.
     add 8fc9815c59 Add support for two-dimensional `SphericalCS` as submitted in ISO 19111 amendment 2.
     add a618f9af4d Add clarification about the use of conformal radius. This is a change in documentation and symbols only.
     add 3110d38dba Add an `AbstractEnvelope.isFinite()` convenience method.
     add 8dd64e03e2 For GeoTIFF image, force (E,N) axis order on projected CRS in addition of geographic CRS.
     add 77cdb0047c When the GeoTIFF image is of floating point type, replace fill values by NaN at reading time. This is the same policy than with our netCDF reader.
     add d01735e01d Move a test class for avoiding package collision between two modules.
     add 91cd9c2583 In case of failure to transform the envelope in metadata, report as a warning instead of a failure to read the file.
     add 4a2e1aefb5 Merge branch 'geoapi-4.0' into geoapi-3.1.
     new fc71c638d0 Merge branch 'geoapi-3.1'.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../org/apache/sis/coverage/SampleDimension.java   |  7 +++++
 .../sis/internal/coverage/SampleDimensions.java    |  6 ++--
 .../java/org/apache/sis/coverage/CategoryTest.java |  3 +-
 .../apache/sis/coverage/SampleDimensionTest.java   |  3 +-
 .../org/apache/sis/image/ResamplingGridTest.java   |  3 +-
 .../sis/internal/feature/j2d/FactoryTest.java      |  2 +-
 .../internal/feature/jts/ShapeConverterTest.java   |  3 +-
 .../sis/internal/filter/sqlmm/SQLMMTest.java       |  3 +-
 .../apache/sis/test/feature/FeatureComparator.java |  3 +-
 .../{test => xml}/DocumentComparatorTest.java      |  2 +-
 .../java/org/apache/sis/metadata/ValueMapTest.java |  3 +-
 .../iso/lineage/DefaultProcessStepTest.java        |  3 +-
 .../quality/AbstractPositionalAccuracyTest.java    |  3 +-
 .../apache/sis/test/xml/DocumentComparator.java    |  3 +-
 .../java/org/apache/sis/util/iso/TypesTest.java    |  3 +-
 .../org/apache/sis/geometry/AbstractEnvelope.java  | 21 ++++++++++++-
 .../apache/sis/io/wkt/GeodeticObjectParser.java    | 18 ++++++++----
 .../sis/referencing/cs/CoordinateSystems.java      |  4 +--
 .../sis/referencing/cs/DefaultSphericalCS.java     | 32 ++++++++++++++++++--
 .../referencing/factory/GeodeticObjectFactory.java | 34 ++++++++++++++++++++++
 .../referencing/factory/sql/EPSGDataAccess.java    |  5 ++++
 .../operation/projection/AzimuthalEquidistant.java |  2 +-
 .../operation/projection/Initializer.java          |  6 ++--
 .../referencing/operation/projection/Mercator.java |  7 +++--
 .../operation/projection/NormalizedProjection.java | 11 ++++---
 .../operation/projection/ProjectionVariant.java    |  6 ++++
 .../org/apache/sis/geometry/ArrayEnvelopeTest.java | 15 ++++++++--
 .../referencing/j2d/AbstractShapeTest.java         |  2 +-
 .../referencing/j2d/ShapeUtilitiesTest.java        |  3 +-
 .../provider/DatumShiftGridCompressedTest.java     |  2 +-
 .../FranceGeocentricInterpolationTest.java         |  3 +-
 .../provider/GeocentricTranslationTest.java        |  3 +-
 .../sis/referencing/GeodeticCalculatorTest.java    |  4 ++-
 .../sis/referencing/StandardDefinitionsTest.java   |  3 +-
 .../sis/referencing/factory/TestFactorySource.java |  3 +-
 .../operation/projection/InitializerTest.java      |  2 +-
 .../operation/projection/MercatorTest.java         |  3 +-
 .../transform/LinearInterpolator1DTest.java        |  3 +-
 .../operation/transform/LinearTransformTest.java   |  2 +-
 .../operation/transform/MathTransformTestCase.java |  3 +-
 .../operation/transform/ScaleTransformTest.java    |  3 +-
 .../integration/CoordinateReferenceSystemTest.java |  3 +-
 .../java/org/apache/sis/measure/NumberRange.java   |  4 +--
 .../test/java/org/apache/sis/math/VectorTest.java  |  3 +-
 .../org/apache/sis/measure/QuantitiesTest.java     |  3 +-
 .../sis/profile/france/FrenchProfileTest.java      |  3 +-
 .../sis/internal/geotiff/SchemaModifier.java       |  2 +-
 .../org/apache/sis/storage/geotiff/CRSBuilder.java | 16 +++++-----
 .../sis/storage/geotiff/CompressedSubset.java      |  4 +--
 .../org/apache/sis/storage/geotiff/DataCube.java   | 18 ++++++++++++
 .../org/apache/sis/storage/geotiff/DataSubset.java | 33 ++++++++++++++++++++-
 .../sis/storage/geotiff/ImageFileDirectory.java    | 13 +++++++--
 .../org/apache/sis/internal/netcdf/CRSBuilder.java | 13 +++++++--
 .../apache/sis/internal/netcdf/VariableTest.java   |  2 +-
 .../storage/netcdf/NetcdfStoreProviderTest.java    |  3 +-
 .../apache/sis/storage/netcdf/NetcdfStoreTest.java |  2 +-
 .../sis/internal/sql/postgis/PostgresTest.java     |  3 +-
 .../sis/internal/storage/esri/RasterStore.java     |  5 ++--
 .../apache/sis/internal/storage/xml/StoreTest.java |  3 +-
 .../apache/sis/storage/StorageConnectorTest.java   |  3 +-
 60 files changed, 303 insertions(+), 83 deletions(-)
 rename core/sis-metadata/src/test/java/org/apache/sis/internal/{test => xml}/DocumentComparatorTest.java (99%)


[sis] 01/01: Merge branch 'geoapi-3.1'.

Posted by de...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit fc71c638d0fbda405e220c6e6161187224b8315a
Merge: 7cb56fed2e 4a2e1aefb5
Author: Martin Desruisseaux <ma...@geomatys.com>
AuthorDate: Mon Jun 5 11:03:19 2023 +0200

    Merge branch 'geoapi-3.1'.

 .../org/apache/sis/coverage/SampleDimension.java   |  7 +++++
 .../sis/internal/coverage/SampleDimensions.java    |  6 ++--
 .../java/org/apache/sis/coverage/CategoryTest.java |  3 +-
 .../apache/sis/coverage/SampleDimensionTest.java   |  3 +-
 .../org/apache/sis/image/ResamplingGridTest.java   |  3 +-
 .../sis/internal/feature/j2d/FactoryTest.java      |  2 +-
 .../internal/feature/jts/ShapeConverterTest.java   |  3 +-
 .../sis/internal/filter/sqlmm/SQLMMTest.java       |  3 +-
 .../apache/sis/test/feature/FeatureComparator.java |  3 +-
 .../{test => xml}/DocumentComparatorTest.java      |  2 +-
 .../java/org/apache/sis/metadata/ValueMapTest.java |  3 +-
 .../iso/lineage/DefaultProcessStepTest.java        |  3 +-
 .../quality/AbstractPositionalAccuracyTest.java    |  3 +-
 .../apache/sis/test/xml/DocumentComparator.java    |  3 +-
 .../java/org/apache/sis/util/iso/TypesTest.java    |  3 +-
 .../org/apache/sis/geometry/AbstractEnvelope.java  | 21 ++++++++++++-
 .../apache/sis/io/wkt/GeodeticObjectParser.java    | 18 ++++++++----
 .../sis/referencing/cs/CoordinateSystems.java      |  4 +--
 .../sis/referencing/cs/DefaultSphericalCS.java     | 32 ++++++++++++++++++--
 .../referencing/factory/GeodeticObjectFactory.java | 34 ++++++++++++++++++++++
 .../referencing/factory/sql/EPSGDataAccess.java    |  5 ++++
 .../operation/projection/AzimuthalEquidistant.java |  2 +-
 .../operation/projection/Initializer.java          |  6 ++--
 .../referencing/operation/projection/Mercator.java |  7 +++--
 .../operation/projection/NormalizedProjection.java | 11 ++++---
 .../operation/projection/ProjectionVariant.java    |  6 ++++
 .../org/apache/sis/geometry/ArrayEnvelopeTest.java | 15 ++++++++--
 .../referencing/j2d/AbstractShapeTest.java         |  2 +-
 .../referencing/j2d/ShapeUtilitiesTest.java        |  3 +-
 .../provider/DatumShiftGridCompressedTest.java     |  2 +-
 .../FranceGeocentricInterpolationTest.java         |  3 +-
 .../provider/GeocentricTranslationTest.java        |  3 +-
 .../sis/referencing/GeodeticCalculatorTest.java    |  4 ++-
 .../sis/referencing/StandardDefinitionsTest.java   |  3 +-
 .../sis/referencing/factory/TestFactorySource.java |  3 +-
 .../operation/projection/InitializerTest.java      |  2 +-
 .../operation/projection/MercatorTest.java         |  3 +-
 .../transform/LinearInterpolator1DTest.java        |  3 +-
 .../operation/transform/LinearTransformTest.java   |  2 +-
 .../operation/transform/MathTransformTestCase.java |  3 +-
 .../operation/transform/ScaleTransformTest.java    |  3 +-
 .../integration/CoordinateReferenceSystemTest.java |  3 +-
 .../java/org/apache/sis/measure/NumberRange.java   |  4 +--
 .../test/java/org/apache/sis/math/VectorTest.java  |  3 +-
 .../org/apache/sis/measure/QuantitiesTest.java     |  3 +-
 .../sis/profile/france/FrenchProfileTest.java      |  3 +-
 .../sis/internal/geotiff/SchemaModifier.java       |  2 +-
 .../org/apache/sis/storage/geotiff/CRSBuilder.java | 16 +++++-----
 .../sis/storage/geotiff/CompressedSubset.java      |  4 +--
 .../org/apache/sis/storage/geotiff/DataCube.java   | 18 ++++++++++++
 .../org/apache/sis/storage/geotiff/DataSubset.java | 33 ++++++++++++++++++++-
 .../sis/storage/geotiff/ImageFileDirectory.java    | 13 +++++++--
 .../org/apache/sis/internal/netcdf/CRSBuilder.java | 13 +++++++--
 .../apache/sis/internal/netcdf/VariableTest.java   |  2 +-
 .../storage/netcdf/NetcdfStoreProviderTest.java    |  3 +-
 .../apache/sis/storage/netcdf/NetcdfStoreTest.java |  2 +-
 .../sis/internal/sql/postgis/PostgresTest.java     |  3 +-
 .../sis/internal/storage/esri/RasterStore.java     |  5 ++--
 .../apache/sis/internal/storage/xml/StoreTest.java |  3 +-
 .../apache/sis/storage/StorageConnectorTest.java   |  3 +-
 60 files changed, 303 insertions(+), 83 deletions(-)

diff --cc core/sis-feature/src/test/java/org/apache/sis/internal/filter/sqlmm/SQLMMTest.java
index 8c7e96b2f4,91d36f196c..4ab04c2ab7
--- a/core/sis-feature/src/test/java/org/apache/sis/internal/filter/sqlmm/SQLMMTest.java
+++ b/core/sis-feature/src/test/java/org/apache/sis/internal/filter/sqlmm/SQLMMTest.java
@@@ -29,11 -28,14 +29,12 @@@ import org.apache.sis.referencing.Commo
  import org.apache.sis.test.TestCase;
  import org.junit.Test;
  
- import static org.opengis.test.Assert.*;
+ import static org.junit.Assert.*;
+ import static org.opengis.test.Assert.assertInstanceOf;
  
  // Branch-dependent imports
 -import org.opengis.filter.Literal;
 -import org.opengis.feature.Feature;
 -import org.opengis.filter.Expression;
 -import org.opengis.filter.FilterFactory;
 +import org.apache.sis.feature.AbstractFeature;
 +import org.apache.sis.filter.Expression;
  
  
  /**
diff --cc core/sis-feature/src/test/java/org/apache/sis/test/feature/FeatureComparator.java
index 339aeec378,e5c5151828..627c1c88cc
--- a/core/sis-feature/src/test/java/org/apache/sis/test/feature/FeatureComparator.java
+++ b/core/sis-feature/src/test/java/org/apache/sis/test/feature/FeatureComparator.java
@@@ -31,15 -31,17 +31,16 @@@ import org.apache.sis.internal.util.Col
  import org.apache.sis.util.ArgumentChecks;
  import org.apache.sis.util.Deprecable;
  
- import static org.opengis.test.Assert.*;
+ import static org.junit.Assert.*;
+ import static org.opengis.test.Assert.assertInstanceOf;
  
  // Branch-dependent imports
 -import org.opengis.feature.Feature;
 -import org.opengis.feature.FeatureType;
 -import org.opengis.feature.FeatureAssociationRole;
 -import org.opengis.feature.PropertyType;
 -import org.opengis.feature.AttributeType;
 -import org.opengis.feature.IdentifiedType;
 -import org.opengis.feature.Operation;
 +import org.apache.sis.feature.AbstractFeature;
 +import org.apache.sis.feature.DefaultFeatureType;
 +import org.apache.sis.feature.DefaultAssociationRole;
 +import org.apache.sis.feature.DefaultAttributeType;
 +import org.apache.sis.feature.AbstractIdentifiedType;
 +import org.apache.sis.feature.AbstractOperation;
  
  
  /**
diff --cc core/sis-metadata/src/test/java/org/apache/sis/util/iso/TypesTest.java
index 0a4a2de38c,da06d0ef0e..b1290f619a
--- a/core/sis-metadata/src/test/java/org/apache/sis/util/iso/TypesTest.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/util/iso/TypesTest.java
@@@ -36,11 -37,9 +36,12 @@@ import org.apache.sis.util.DefaultInter
  import org.apache.sis.test.TestCase;
  import org.junit.Test;
  
- import static org.opengis.test.Assert.*;
+ import static org.junit.Assert.*;
+ import static org.opengis.test.Assert.assertInstanceOf;
  
 +// Branch-dependent imports
 +import static org.apache.sis.test.GeoapiAssert.PENDING_NEXT_GEOAPI_RELEASE;
 +
  
  /**
   * Tests the {@link Types} class.
diff --cc core/sis-referencing/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java
index 2bb244c086,9ed19d4ffb..010a5b55ee
--- a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java
@@@ -92,6 -91,6 +92,7 @@@ import static java.util.Collections.sin
  
  // Branch-dependent imports
  import org.opengis.referencing.ReferenceIdentifier;
++import org.apache.sis.referencing.factory.GeodeticObjectFactory;
  
  
  /**
@@@ -931,6 -930,14 +932,17 @@@ class GeodeticObjectParser extends Math
                  dimension = (axes.length < 2) ? 2 : 3;                      // For error message.
                  break;
              }
+             case WKTKeywords.spherical: {
+                 switch (axes.length) {
 -                    case 2: return csFactory.createSphericalCS(csProperties, axes[0], axes[1]);
++                    case 2: if (csFactory instanceof GeodeticObjectFactory) {
++                                return ((GeodeticObjectFactory) csFactory).createSphericalCS(csProperties, axes[0], axes[1]);
++                            }
++                            break;
+                     case 3: return csFactory.createSphericalCS(csProperties, axes[0], axes[1], axes[2]);
+                 }
+                 dimension = (axes.length < 2) ? 2 : 3;                      // For error message.
+                 break;
+             }
              case WKTKeywords.Cartesian: {
                  switch (axes.length) {
                      case 2: return csFactory.createCartesianCS(csProperties, axes[0], axes[1]);
@@@ -967,13 -974,9 +979,9 @@@
                  if (axes.length != (dimension = 3)) break;
                  return csFactory.createCylindricalCS(csProperties, axes[0], axes[1], axes[2]);
              }
-             case WKTKeywords.spherical: {
-                 if (axes.length != (dimension = 3)) break;
-                 return csFactory.createSphericalCS(csProperties, axes[0], axes[1], axes[2]);
-             }
              case WKTKeywords.parametric: {
                  if (axes.length != (dimension = 1)) break;
 -                return csFactory.createParametricCS(csProperties, axes[0]);
 +                return ServicesForMetadata.createParametricCS(csProperties, axes[0], csFactory);
              }
              default: {
                  warning(parent, WKTKeywords.CS, Errors.formatInternational(Errors.Keys.UnknownType_1, type), null);
diff --cc core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/GeodeticObjectFactory.java
index fa93328a32,f53cf7812e..201310557c
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/GeodeticObjectFactory.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/GeodeticObjectFactory.java
@@@ -479,6 -479,41 +479,40 @@@ public class GeodeticObjectFactory exte
          return unique("createSphericalCS", cs);
      }
  
+     /**
+      * Creates a spherical coordinate system without radius.
+      * This coordinate system can be used with geocentric, engineering and derived CRS.
+      *
+      * <h4>Dependencies</h4>
+      * The components needed by this method can be created by the following methods:
+      * <ol>
+      *   <li>{@link #createCoordinateSystemAxis(Map, String, AxisDirection, Unit)}</li>
+      * </ol>
+      *
+      * The default implementation creates a {@link DefaultSphericalCS} instance.
+      *
+      * @param  properties  name and other properties to give to the new object.
+      * @param  axis0       the first  axis (e.g. “Spherical latitude”).
+      * @param  axis1       the second axis (e.g. “Spherical longitude”).
+      * @throws FactoryException if the object creation failed.
+      *
+      * @see DefaultSphericalCS#DefaultSphericalCS(Map, CoordinateSystemAxis, CoordinateSystemAxis)
+      *
+      * @since 1.4
+      */
 -    @Override
+     public SphericalCS createSphericalCS(final Map<String,?> properties,
+             final CoordinateSystemAxis axis0,
+             final CoordinateSystemAxis axis1) throws FactoryException
+     {
+         final DefaultSphericalCS cs;
+         try {
+             cs = new DefaultSphericalCS(complete(properties), axis0, axis1);
+         } catch (IllegalArgumentException exception) {
+             throw new InvalidGeodeticParameterException(exception);
+         }
+         return unique("createSphericalCS", cs);
+     }
+ 
      /**
       * Creates a geographic coordinate reference system. It can be (<var>latitude</var>, <var>longitude</var>)
       * or (<var>longitude</var>, <var>latitude</var>), optionally with an ellipsoidal height.
diff --cc core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/sql/EPSGDataAccess.java
index 7ecabe99d0,5f0eb61e0e..3a41de5541
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/sql/EPSGDataAccess.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/sql/EPSGDataAccess.java
@@@ -122,11 -123,6 +122,12 @@@ import static org.apache.sis.util.Utili
  import static org.apache.sis.internal.util.StandardDateFormat.UTC;
  import static org.apache.sis.internal.referencing.ServicesForMetadata.CONNECTION;
  
 +// Branch-dependent imports
 +import org.apache.sis.referencing.cs.DefaultParametricCS;
 +import org.apache.sis.referencing.datum.DefaultParametricDatum;
 +import org.apache.sis.internal.referencing.ServicesForMetadata;
++import org.apache.sis.referencing.factory.GeodeticObjectFactory;
 +
  
  /**
   * <cite>Data Access Object</cite> (DAO) creating geodetic objects from a JDBC connection to an EPSG database.
@@@ -2201,6 -2197,7 +2202,10 @@@ codes:  for (int i=0; i<codes.length; i
                      }
                      case WKTKeywords.spherical: {
                          switch (dimension) {
 -                            case 2: cs = csFactory.createSphericalCS(properties, axes[0], axes[1]); break;
++                            case 2: if (csFactory instanceof GeodeticObjectFactory) {
++                                        cs = ((GeodeticObjectFactory) csFactory).createSphericalCS(properties, axes[0], axes[1]);
++                                    }
++                                    break;
                              case 3: cs = csFactory.createSphericalCS(properties, axes[0], axes[1], axes[2]); break;
                          }
                          break;
diff --cc core/sis-referencing/src/test/java/org/apache/sis/referencing/GeodeticCalculatorTest.java
index c29e9c163c,b7e81bbe91..5895abfc8b
--- a/core/sis-referencing/src/test/java/org/apache/sis/referencing/GeodeticCalculatorTest.java
+++ b/core/sis-referencing/src/test/java/org/apache/sis/referencing/GeodeticCalculatorTest.java
@@@ -46,7 -47,10 +46,9 @@@ import net.sf.geographiclib.GeodesicDat
  import org.junit.Test;
  
  import static java.lang.StrictMath.*;
- import static org.opengis.test.Assert.*;
+ import static org.junit.Assert.*;
+ import static org.opengis.test.Assert.assertBetween;
+ import static org.opengis.test.Assert.assertInstanceOf;
 -import static org.opengis.test.Assert.assertAxisDirectionsEqual;
  import static org.apache.sis.internal.metadata.ReferencingServices.AUTHALIC_RADIUS;
  
  
diff --cc core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/MercatorTest.java
index 5bb4ed40d8,6b54409d30..eb4fd775db
--- 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
@@@ -35,13 -37,10 +35,14 @@@ import org.junit.Test
  
  import static java.lang.Double.*;
  import static java.lang.StrictMath.*;
- import static org.opengis.test.Assert.*;
+ import static org.junit.Assert.*;
+ import static org.opengis.test.Assert.assertBetween;
  import static org.apache.sis.referencing.operation.projection.ConformalProjectionTest.LN_INFINITY;
  
 +// Branch-specific imports
 +import static org.junit.Assume.assumeTrue;
 +import static org.apache.sis.test.GeoapiAssert.PENDING_NEXT_GEOAPI_RELEASE;
 +
  
  /**
   * Tests the {@link Mercator} projection.
diff --cc core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/LinearTransformTest.java
index a9ccc1f8e2,c458838d25..2422748819
--- a/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/LinearTransformTest.java
+++ b/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/LinearTransformTest.java
@@@ -26,11 -26,8 +26,11 @@@ import org.junit.Test
  import org.junit.runner.RunWith;
  import org.apache.sis.test.DependsOn;
  import org.apache.sis.test.TestRunner;
- import static org.opengis.test.Assert.*;
+ import static org.opengis.test.Assert.assertInstanceOf;
  
 +// Branch-dependent imports
 +import org.junit.Ignore;
 +
  
  /**
   * Tests various implementation of the {@link LinearTransform} interface by inheriting the tests defined
diff --cc core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/MathTransformTestCase.java
index 71a6d2a63e,e49512b43e..dae7791920
--- a/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/MathTransformTestCase.java
+++ b/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/MathTransformTestCase.java
@@@ -40,8 -43,13 +40,9 @@@ import org.opengis.test.Validators
  import org.apache.sis.test.TestUtilities;
  import org.apache.sis.referencing.Assertions;
  import org.apache.sis.referencing.operation.matrix.MatrixTestCase;
- import static org.opengis.test.Assert.*;
+ import static org.junit.Assert.*;
+ import static org.opengis.test.Assert.assertInstanceOf;
  
 -// Branch-dependent imports
 -import org.opengis.test.CalculationType;
 -
  
  /**
   * Base class for tests of {@link AbstractMathTransform} implementations.
diff --cc core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/ScaleTransformTest.java
index 3c3099ac49,afa9d5c7f6..96e9aa5f13
--- a/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/ScaleTransformTest.java
+++ b/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/ScaleTransformTest.java
@@@ -24,10 -24,11 +24,11 @@@ import org.apache.sis.internal.util.Dou
  
  import org.apache.sis.test.DependsOnMethod;
  import org.apache.sis.test.DependsOn;
 -import org.opengis.test.Assert;
 +import static org.apache.sis.test.GeoapiAssert.assertMatrixEquals;
  import org.junit.Test;
  
- import static org.opengis.test.Assert.*;
+ import static org.junit.Assert.*;
+ import static org.opengis.test.Assert.assertInstanceOf;
  
  
  /**
diff --cc storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/CRSBuilder.java
index 4a2f5cb5ab,97d0ca7164..43ba5eaa80
--- a/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/CRSBuilder.java
+++ b/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/CRSBuilder.java
@@@ -60,9 -60,6 +60,10 @@@ import org.apache.sis.util.ArraysExt
  import org.apache.sis.measure.NumberRange;
  import org.apache.sis.measure.Units;
  
 +// Branch-dependent imports
++import org.apache.sis.referencing.factory.GeodeticObjectFactory;
 +import org.apache.sis.referencing.operation.DefaultCoordinateOperationFactory;
 +
  
  /**
   * Temporary object for building a coordinate reference system from the variables in a netCDF file.
@@@ -685,7 -682,11 +686,13 @@@ previous:   for (int i=components.size(
           * found that the {@link #coordinateSystem} does not have compatible axes.
           */
          @Override void createCS(CSFactory factory, Map<String,?> properties, CoordinateSystemAxis[] axes) throws FactoryException {
-             coordinateSystem = factory.createSphericalCS(properties, axes[0], axes[1], axes[2]);
+             if (axes.length > 2) {
+                 coordinateSystem = factory.createSphericalCS(properties, axes[0], axes[1], axes[2]);
++            } else if (factory instanceof GeodeticObjectFactory) {
++                coordinateSystem = ((GeodeticObjectFactory) factory).createSphericalCS(properties, axes[0], axes[1]);
+             } else {
 -                coordinateSystem = factory.createSphericalCS(properties, axes[0], axes[1]);
++                throw new FactoryException("Unsupported factory implementation.");
+             }
          }
  
          /**
diff --cc storage/sis-netcdf/src/test/java/org/apache/sis/internal/netcdf/VariableTest.java
index 8f2a85cd6d,6c25c83c9a..e0cfb48ba9
--- a/storage/sis-netcdf/src/test/java/org/apache/sis/internal/netcdf/VariableTest.java
+++ b/storage/sis-netcdf/src/test/java/org/apache/sis/internal/netcdf/VariableTest.java
@@@ -26,9 -26,10 +26,9 @@@ import org.apache.sis.storage.DataStore
  import org.apache.sis.internal.netcdf.ucar.DecoderWrapper;
  import org.apache.sis.measure.Units;
  import org.apache.sis.test.DependsOn;
 -import org.opengis.test.dataset.TestData;
  import org.junit.Test;
  
- import static org.opengis.test.Assert.*;
+ import static org.junit.Assert.*;
  
  
  /**
diff --cc storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/NetcdfStoreProviderTest.java
index 986fefab29,ab496dd799..ad0f0f9716
--- a/storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/NetcdfStoreProviderTest.java
+++ b/storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/NetcdfStoreProviderTest.java
@@@ -29,10 -29,11 +29,11 @@@ import org.apache.sis.storage.DataStore
  import org.apache.sis.storage.DataStoreMock;
  import org.apache.sis.util.Version;
  import org.apache.sis.test.DependsOn;
 -import org.opengis.test.dataset.TestData;
 +import org.apache.sis.internal.netcdf.TestData;
  import org.junit.Test;
  
- import static org.opengis.test.Assert.*;
+ import static org.junit.Assert.*;
+ import static org.opengis.test.Assert.assertInstanceOf;
  
  
  /**
diff --cc storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/NetcdfStoreTest.java
index 258e676dad,e2c6a78c75..f2283edb46
--- a/storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/NetcdfStoreTest.java
+++ b/storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/NetcdfStoreTest.java
@@@ -22,10 -22,10 +22,10 @@@ import org.apache.sis.storage.DataStore
  import org.apache.sis.test.TestCase;
  import org.apache.sis.test.DependsOn;
  import org.apache.sis.util.Version;
 -import org.opengis.test.dataset.TestData;
 +import org.apache.sis.internal.netcdf.TestData;
  import org.junit.Test;
  
- import static org.opengis.test.Assert.*;
+ import static org.junit.Assert.*;
  
  
  /**