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 2f7d100c28e4c06b67b8b1099c69f53c449df27e
Author: Martin Desruisseaux <martin.desruisse...@geomatys.com>
AuthorDate: Fri Jun 21 10:37:48 2019 +0200

    Initial move of WKT parser/formatter from sis-metadata module to 
sis-referencing.
    https://issues.apache.org/jira/browse/SIS-463
---
 .../sis/internal/metadata/ReferencingServices.java | 32 ---------
 .../java/org/apache/sis/io/wkt/WKTFormatTest.txt   |  4 --
 .../java/org/apache/sis/test/MetadataAssert.java   | 79 ---------------------
 .../apache/sis/test/suite/MetadataTestSuite.java   |  8 ---
 .../internal/referencing/ServicesForMetadata.java  |  6 +-
 .../java/org/apache/sis/io/wkt/AbstractParser.java |  0
 .../main/java/org/apache/sis/io/wkt/Colors.java    |  0
 .../java/org/apache/sis/io/wkt/Convention.java     |  0
 .../main/java/org/apache/sis/io/wkt/Element.java   |  0
 .../java/org/apache/sis/io/wkt/ElementKind.java    |  0
 .../org/apache/sis/io/wkt/FormattableObject.java   |  0
 .../main/java/org/apache/sis/io/wkt/Formatter.java |  6 +-
 .../apache/sis/io/wkt/GeodeticObjectParser.java    |  0
 .../java/org/apache/sis/io/wkt/KeywordCase.java    |  0
 .../java/org/apache/sis/io/wkt/KeywordStyle.java   |  0
 .../org/apache/sis/io/wkt/MathTransformParser.java |  0
 .../main/java/org/apache/sis/io/wkt/Parser.java    |  0
 .../main/java/org/apache/sis/io/wkt/Symbols.java   |  0
 .../java/org/apache/sis/io/wkt/Transliterator.java |  0
 .../sis/io/wkt/UnformattableObjectException.java   |  0
 .../sis/io/wkt/UnparsableObjectException.java      |  0
 .../java/org/apache/sis/io/wkt/VerticalInfo.java   |  0
 .../main/java/org/apache/sis/io/wkt/WKTFormat.java |  0
 .../main/java/org/apache/sis/io/wkt/Warnings.java  |  0
 .../java/org/apache/sis/io/wkt/package-info.java   |  0
 .../sis/metadata/iso/ImmutableIdentifier.java      |  0
 .../org/apache/sis/geometry/ArrayEnvelopeTest.java |  2 +-
 .../internal/referencing/provider/AffineTest.java  |  2 +-
 .../provider/LongitudeRotationTest.java            |  2 +-
 .../java/org/apache/sis/io/wkt/ColorsTest.java     |  0
 .../java/org/apache/sis/io/wkt/ConventionTest.java |  0
 .../java/org/apache/sis/io/wkt/ElementTest.java    |  0
 .../java/org/apache/sis/io/wkt/FormatterTest.java  |  2 +-
 .../java/org/apache/sis/io/wkt/SymbolsTest.java    |  0
 .../org/apache/sis/io/wkt/TransliteratorTest.java  |  0
 .../sis/metadata/iso/ImmutableIdentifierTest.java  |  4 +-
 .../DefaultParameterDescriptorGroupTest.java       |  2 +-
 .../parameter/DefaultParameterDescriptorTest.java  |  2 +-
 .../sis/parameter/DefaultParameterValueTest.java   |  2 +-
 .../org/apache/sis/parameter/TensorValuesTest.java |  2 +-
 .../referencing/AbstractReferenceSystemTest.java   |  2 +-
 .../referencing/crs/DefaultEngineeringCRSTest.java |  2 +-
 .../referencing/crs/DefaultGeocentricCRSTest.java  |  2 +-
 .../referencing/crs/DefaultGeographicCRSTest.java  |  2 +-
 .../sis/referencing/crs/DefaultImageCRSTest.java   |  2 +-
 .../referencing/crs/DefaultTemporalCRSTest.java    |  2 +-
 .../referencing/crs/DefaultVerticalCRSTest.java    |  2 +-
 .../cs/DefaultCoordinateSystemAxisTest.java        |  2 +-
 .../referencing/cs/DirectionAlongMeridianTest.java |  2 +-
 .../referencing/datum/DefaultEllipsoidTest.java    |  2 +-
 .../datum/DefaultGeodeticDatumTest.java            |  2 +-
 .../datum/DefaultPrimeMeridianTest.java            |  2 +-
 .../datum/DefaultVerticalDatumTest.java            |  2 +-
 .../factory/GeodeticObjectFactoryTest.java         |  2 +-
 .../DefaultConcatenatedOperationTest.java          |  2 +-
 .../referencing/operation/DefaultFormulaTest.java  |  2 +-
 .../operation/DefaultTransformationTest.java       |  2 +-
 .../org/apache/sis/test/ReferencingAssert.java     | 80 +++++++++++++++++++++-
 .../sis/test/suite/ReferencingTestSuite.java       |  9 +++
 59 files changed, 119 insertions(+), 159 deletions(-)

diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ReferencingServices.java
 
b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ReferencingServices.java
index a56a050..2653d77 100644
--- 
a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ReferencingServices.java
+++ 
b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ReferencingServices.java
@@ -54,7 +54,6 @@ import 
org.apache.sis.metadata.iso.extent.DefaultSpatialTemporalExtent;
 import org.apache.sis.internal.system.DefaultFactories;
 import org.apache.sis.internal.system.OptionalDependency;
 import org.apache.sis.internal.system.Modules;
-import org.apache.sis.io.wkt.FormattableObject;
 import org.apache.sis.util.Deprecable;
 
 
@@ -332,37 +331,6 @@ public class ReferencingServices extends 
OptionalDependency {
         throw moduleNotFound();
     }
 
-    /**
-     * Converts the given object in a {@code FormattableObject} instance.
-     *
-     * @param  object  the object to wrap.
-     * @return the given object converted to a {@code FormattableObject} 
instance.
-     * @throws UnsupportedOperationException if the {@code "sis-referencing"} 
module has not been found on the classpath.
-     *
-     * @see 
org.apache.sis.referencing.AbstractIdentifiedObject#castOrCopy(IdentifiedObject)
-     *
-     * @since 0.4
-     */
-    public FormattableObject toFormattableObject(IdentifiedObject object) {
-        throw moduleNotFound();
-    }
-
-    /**
-     * Converts the given object in a {@code FormattableObject} instance. 
Callers should verify that the given
-     * object is not already an instance of {@code FormattableObject} before 
to invoke this method. This method
-     * returns {@code null} if it can not convert the object.
-     *
-     * @param  object  the object to wrap.
-     * @param  internal {@code true} if the formatting convention is {@code 
Convention.INTERNAL}.
-     * @return the given object converted to a {@code FormattableObject} 
instance, or {@code null}.
-     * @throws UnsupportedOperationException if the {@code "sis-referencing"} 
module has not been found on the classpath.
-     *
-     * @since 0.6
-     */
-    public FormattableObject toFormattableObject(MathTransform object, boolean 
internal) {
-        throw moduleNotFound();
-    }
-
 
 
 
diff --git 
a/core/sis-metadata/src/test/java/org/apache/sis/io/wkt/WKTFormatTest.txt 
b/core/sis-metadata/src/test/java/org/apache/sis/io/wkt/WKTFormatTest.txt
deleted file mode 100644
index 1101ffb..0000000
--- a/core/sis-metadata/src/test/java/org/apache/sis/io/wkt/WKTFormatTest.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-WKTFormat and some of its dependencies (GeodeticObjectParser and
-MathTransformParser) can not be tested in "sis-metadata" module,
-because they need the "sis-referencing" module at execution time.
-Those test classes are added by the "sis-referencing" module.
diff --git 
a/core/sis-metadata/src/test/java/org/apache/sis/test/MetadataAssert.java 
b/core/sis-metadata/src/test/java/org/apache/sis/test/MetadataAssert.java
index 8f22c56..56a76c7 100644
--- a/core/sis-metadata/src/test/java/org/apache/sis/test/MetadataAssert.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/test/MetadataAssert.java
@@ -27,10 +27,6 @@ import org.opengis.metadata.maintenance.Scope;
 import org.opengis.metadata.maintenance.ScopeCode;
 import org.opengis.metadata.content.FeatureTypeInfo;
 import org.opengis.metadata.content.FeatureCatalogueDescription;
-import org.opengis.referencing.IdentifiedObject;
-import org.apache.sis.io.wkt.Symbols;
-import org.apache.sis.io.wkt.WKTFormat;
-import org.apache.sis.io.wkt.Convention;
 import org.apache.sis.xml.Namespaces;
 import org.apache.sis.test.xml.DocumentComparator;
 import org.apache.sis.internal.xml.LegacyNamespaces;
@@ -53,18 +49,6 @@ import org.opengis.metadata.citation.Responsibility;
  */
 public strictfp class MetadataAssert extends Assert {
     /**
-     * The formatter to be used by {@link #assertWktEquals(String, Object)}.
-     * This formatter uses the {@code “…”} quotation marks instead of {@code 
"…"}
-     * for easier readability of {@link String} constants in Java code.
-     */
-    private static final WKTFormat WKT_FORMAT = new WKTFormat(null, null);
-    static {
-        final Symbols s = new Symbols(Symbols.SQUARE_BRACKETS);
-        s.setPairedQuotes("“”", "\"\"");
-        WKT_FORMAT.setSymbols(s);
-    }
-
-    /**
      * For subclass constructor only.
      */
     protected MetadataAssert() {
@@ -145,69 +129,6 @@ public strictfp class MetadataAssert extends Assert {
     }
 
     /**
-     * Asserts that the WKT 2 of the given object is equal to the expected one.
-     * This method expected the {@code “…”} quotation marks instead of {@code 
"…"}
-     * for easier readability of {@link String} constants in Java code.
-     *
-     * @param expected  the expected text, or {@code null} if {@code object} 
is expected to be null.
-     * @param object    the object to format in <cite>Well Known Text</cite> 
format, or {@code null}.
-     */
-    public static void assertWktEquals(final String expected, final Object 
object) {
-        assertWktEquals(Convention.WKT2, expected, object);
-    }
-
-    /**
-     * Asserts that the WKT of the given object according the given convention 
is equal to the expected one.
-     * This method expected the {@code “…”} quotation marks instead of {@code 
"…"} for easier readability of
-     * {@link String} constants in Java code.
-     *
-     * @param convention  the WKT convention to use.
-     * @param expected    the expected text, or {@code null} if {@code object} 
is expected to be null.
-     * @param object      the object to format in <cite>Well Known Text</cite> 
format, or {@code null}.
-     */
-    public static void assertWktEquals(final Convention convention, final 
String expected, final Object object) {
-        if (expected == null) {
-            assertNull(object);
-        } else {
-            assertNotNull(object);
-            final String wkt;
-            synchronized (WKT_FORMAT) {
-                WKT_FORMAT.setConvention(convention);
-                wkt = WKT_FORMAT.format(object);
-            }
-            assertMultilinesEquals((object instanceof IdentifiedObject) ?
-                    ((IdentifiedObject) object).getName().getCode() : 
object.getClass().getSimpleName(), expected, wkt);
-        }
-    }
-
-    /**
-     * Asserts that the WKT of the given object according the given convention 
is equal to the given regular expression.
-     * This method is like {@link #assertWktEquals(String, Object)}, but the 
use of regular expression allows some
-     * tolerance for example on numerical parameter values that may be subject 
to a limited form of rounding errors.
-     *
-     * @param convention  the WKT convention to use.
-     * @param expected    the expected regular expression, or {@code null} if 
{@code object} is expected to be null.
-     * @param object      the object to format in <cite>Well Known Text</cite> 
format, or {@code null}.
-     *
-     * @since 0.6
-     */
-    public static void assertWktEqualsRegex(final Convention convention, final 
String expected, final Object object) {
-        if (expected == null) {
-            assertNull(object);
-        } else {
-            assertNotNull(object);
-            final String wkt;
-            synchronized (WKT_FORMAT) {
-                WKT_FORMAT.setConvention(convention);
-                wkt = WKT_FORMAT.format(object);
-            }
-            if (!wkt.matches(expected.replace("\n", System.lineSeparator()))) {
-                fail("WKT does not match the expected regular expression. The 
WKT that we got is:\n" + wkt);
-            }
-        }
-    }
-
-    /**
      * Parses two XML trees as DOM documents, and compares the nodes.
      * The inputs given to this method can be any of the following types:
      *
diff --git 
a/core/sis-metadata/src/test/java/org/apache/sis/test/suite/MetadataTestSuite.java
 
b/core/sis-metadata/src/test/java/org/apache/sis/test/suite/MetadataTestSuite.java
index bcd9d9e..014361a 100644
--- 
a/core/sis-metadata/src/test/java/org/apache/sis/test/suite/MetadataTestSuite.java
+++ 
b/core/sis-metadata/src/test/java/org/apache/sis/test/suite/MetadataTestSuite.java
@@ -124,20 +124,12 @@ import org.junit.BeforeClass;
     org.apache.sis.metadata.iso.lineage.DefaultProcessStepTest.class,
     org.apache.sis.metadata.iso.constraint.DefaultLegalConstraintsTest.class,
     org.apache.sis.metadata.iso.DefaultIdentifierTest.class,
-    org.apache.sis.metadata.iso.ImmutableIdentifierTest.class,
     org.apache.sis.metadata.iso.DefaultMetadataTest.class,
     org.apache.sis.metadata.iso.CustomMetadataTest.class,
     org.apache.sis.metadata.iso.AllMetadataTest.class,
     org.apache.sis.metadata.iso.MarshallingTest.class,
     org.apache.sis.metadata.iso.APIVerifier.class,
 
-    org.apache.sis.io.wkt.ConventionTest.class,
-    org.apache.sis.io.wkt.SymbolsTest.class,
-    org.apache.sis.io.wkt.TransliteratorTest.class,
-    org.apache.sis.io.wkt.ColorsTest.class,
-    org.apache.sis.io.wkt.FormatterTest.class,
-    org.apache.sis.io.wkt.ElementTest.class,
-
     org.apache.sis.internal.metadata.sql.SQLUtilitiesTest.class,
     org.apache.sis.internal.metadata.sql.TypeMapperTest.class,
     org.apache.sis.internal.metadata.sql.ScriptRunnerTest.class,
diff --git 
a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/ServicesForMetadata.java
 
b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/ServicesForMetadata.java
index f5e455d..d44c5f1 100644
--- 
a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/ServicesForMetadata.java
+++ 
b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/ServicesForMetadata.java
@@ -531,8 +531,7 @@ public final class ServicesForMetadata extends 
ReferencingServices {
      * @param  object  the object to wrap.
      * @return the given object converted to a {@code FormattableObject} 
instance.
      */
-    @Override
-    public FormattableObject toFormattableObject(final IdentifiedObject 
object) {
+    public static FormattableObject toFormattableObject(final IdentifiedObject 
object) {
         return AbstractIdentifiedObject.castOrCopy(object);
     }
 
@@ -547,8 +546,7 @@ public final class ServicesForMetadata extends 
ReferencingServices {
      *
      * @since 0.6
      */
-    @Override
-    public FormattableObject toFormattableObject(final MathTransform object, 
boolean internal) {
+    public static FormattableObject toFormattableObject(final MathTransform 
object, boolean internal) {
         Matrix matrix;
         final ParameterValueGroup parameters;
         if (internal && (matrix = MathTransforms.getMatrix(object)) != null) {
diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/AbstractParser.java 
b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/AbstractParser.java
similarity index 100%
rename from 
core/sis-metadata/src/main/java/org/apache/sis/io/wkt/AbstractParser.java
rename to 
core/sis-referencing/src/main/java/org/apache/sis/io/wkt/AbstractParser.java
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Colors.java 
b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Colors.java
similarity index 100%
rename from core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Colors.java
rename to core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Colors.java
diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Convention.java 
b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Convention.java
similarity index 100%
rename from 
core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Convention.java
rename to 
core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Convention.java
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Element.java 
b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Element.java
similarity index 100%
rename from core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Element.java
rename to core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Element.java
diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/ElementKind.java 
b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/ElementKind.java
similarity index 100%
rename from 
core/sis-metadata/src/main/java/org/apache/sis/io/wkt/ElementKind.java
rename to 
core/sis-referencing/src/main/java/org/apache/sis/io/wkt/ElementKind.java
diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/FormattableObject.java 
b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/FormattableObject.java
similarity index 100%
rename from 
core/sis-metadata/src/main/java/org/apache/sis/io/wkt/FormattableObject.java
rename to 
core/sis-referencing/src/main/java/org/apache/sis/io/wkt/FormattableObject.java
diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Formatter.java 
b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Formatter.java
similarity index 99%
rename from core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Formatter.java
rename to 
core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Formatter.java
index d17e2ff..b924553 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Formatter.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Formatter.java
@@ -75,7 +75,7 @@ import org.apache.sis.internal.util.Constants;
 import org.apache.sis.internal.util.StandardDateFormat;
 import org.apache.sis.internal.simple.SimpleExtent;
 import org.apache.sis.internal.metadata.WKTKeywords;
-import org.apache.sis.internal.metadata.ReferencingServices;
+import org.apache.sis.internal.referencing.ServicesForMetadata;
 import org.apache.sis.internal.metadata.Resources;
 import org.apache.sis.measure.UnitFormat;
 import org.apache.sis.measure.Range;
@@ -984,7 +984,7 @@ public class Formatter implements Localized {
             if (transform instanceof FormattableObject) {
                 append((FormattableObject) transform);
             } else {
-                final FormattableObject object = 
ReferencingServices.getInstance()
+                final FormattableObject object = ServicesForMetadata
                         .toFormattableObject(transform, convention == 
Convention.INTERNAL);
                 if (object != null) {
                     append(object);
@@ -1549,7 +1549,7 @@ public class Formatter implements Localized {
         if (value instanceof FormattableObject) {
             append((FormattableObject) value);
         } else if (value instanceof IdentifiedObject) {
-            
append(ReferencingServices.getInstance().toFormattableObject((IdentifiedObject) 
value));
+            append(ServicesForMetadata.toFormattableObject((IdentifiedObject) 
value));
         } else if (value instanceof MathTransform) {
             append((MathTransform) value);
         } else if (value instanceof Unit<?>) {
diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java
 
b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java
similarity index 100%
rename from 
core/sis-metadata/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java
rename to 
core/sis-referencing/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java
diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/KeywordCase.java 
b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/KeywordCase.java
similarity index 100%
rename from 
core/sis-metadata/src/main/java/org/apache/sis/io/wkt/KeywordCase.java
rename to 
core/sis-referencing/src/main/java/org/apache/sis/io/wkt/KeywordCase.java
diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/KeywordStyle.java 
b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/KeywordStyle.java
similarity index 100%
rename from 
core/sis-metadata/src/main/java/org/apache/sis/io/wkt/KeywordStyle.java
rename to 
core/sis-referencing/src/main/java/org/apache/sis/io/wkt/KeywordStyle.java
diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/MathTransformParser.java
 
b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/MathTransformParser.java
similarity index 100%
rename from 
core/sis-metadata/src/main/java/org/apache/sis/io/wkt/MathTransformParser.java
rename to 
core/sis-referencing/src/main/java/org/apache/sis/io/wkt/MathTransformParser.java
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Parser.java 
b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Parser.java
similarity index 100%
rename from core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Parser.java
rename to core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Parser.java
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Symbols.java 
b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Symbols.java
similarity index 100%
rename from core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Symbols.java
rename to core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Symbols.java
diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Transliterator.java 
b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Transliterator.java
similarity index 100%
rename from 
core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Transliterator.java
rename to 
core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Transliterator.java
diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/UnformattableObjectException.java
 
b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/UnformattableObjectException.java
similarity index 100%
rename from 
core/sis-metadata/src/main/java/org/apache/sis/io/wkt/UnformattableObjectException.java
rename to 
core/sis-referencing/src/main/java/org/apache/sis/io/wkt/UnformattableObjectException.java
diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/UnparsableObjectException.java
 
b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/UnparsableObjectException.java
similarity index 100%
rename from 
core/sis-metadata/src/main/java/org/apache/sis/io/wkt/UnparsableObjectException.java
rename to 
core/sis-referencing/src/main/java/org/apache/sis/io/wkt/UnparsableObjectException.java
diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/VerticalInfo.java 
b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/VerticalInfo.java
similarity index 100%
rename from 
core/sis-metadata/src/main/java/org/apache/sis/io/wkt/VerticalInfo.java
rename to 
core/sis-referencing/src/main/java/org/apache/sis/io/wkt/VerticalInfo.java
diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/WKTFormat.java 
b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/WKTFormat.java
similarity index 100%
rename from core/sis-metadata/src/main/java/org/apache/sis/io/wkt/WKTFormat.java
rename to 
core/sis-referencing/src/main/java/org/apache/sis/io/wkt/WKTFormat.java
diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Warnings.java 
b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Warnings.java
similarity index 100%
rename from core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Warnings.java
rename to core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Warnings.java
diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/package-info.java 
b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/package-info.java
similarity index 100%
rename from 
core/sis-metadata/src/main/java/org/apache/sis/io/wkt/package-info.java
rename to 
core/sis-referencing/src/main/java/org/apache/sis/io/wkt/package-info.java
diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ImmutableIdentifier.java
 
b/core/sis-referencing/src/main/java/org/apache/sis/metadata/iso/ImmutableIdentifier.java
similarity index 100%
rename from 
core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ImmutableIdentifier.java
rename to 
core/sis-referencing/src/main/java/org/apache/sis/metadata/iso/ImmutableIdentifier.java
diff --git 
a/core/sis-referencing/src/test/java/org/apache/sis/geometry/ArrayEnvelopeTest.java
 
b/core/sis-referencing/src/test/java/org/apache/sis/geometry/ArrayEnvelopeTest.java
index 4f77c3e..25d44e1 100644
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/geometry/ArrayEnvelopeTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/geometry/ArrayEnvelopeTest.java
@@ -21,7 +21,7 @@ import org.apache.sis.test.DependsOn;
 import org.apache.sis.test.TestCase;
 import org.junit.Test;
 
-import static org.apache.sis.test.MetadataAssert.*;
+import static org.apache.sis.test.ReferencingAssert.*;
 
 
 /**
diff --git 
a/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/provider/AffineTest.java
 
b/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/provider/AffineTest.java
index bb3a334..40a9921 100644
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/provider/AffineTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/provider/AffineTest.java
@@ -25,7 +25,7 @@ import org.apache.sis.test.DependsOn;
 import org.apache.sis.test.TestCase;
 import org.junit.Test;
 
-import static org.apache.sis.test.MetadataAssert.*;
+import static org.apache.sis.test.ReferencingAssert.*;
 
 
 /**
diff --git 
a/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/provider/LongitudeRotationTest.java
 
b/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/provider/LongitudeRotationTest.java
index 3b11e2a..b711a08 100644
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/provider/LongitudeRotationTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/provider/LongitudeRotationTest.java
@@ -26,7 +26,7 @@ import org.apache.sis.test.DependsOn;
 import org.apache.sis.test.TestCase;
 import org.junit.Test;
 
-import static org.apache.sis.test.MetadataAssert.*;
+import static org.apache.sis.test.ReferencingAssert.*;
 
 
 /**
diff --git 
a/core/sis-metadata/src/test/java/org/apache/sis/io/wkt/ColorsTest.java 
b/core/sis-referencing/src/test/java/org/apache/sis/io/wkt/ColorsTest.java
similarity index 100%
rename from 
core/sis-metadata/src/test/java/org/apache/sis/io/wkt/ColorsTest.java
rename to 
core/sis-referencing/src/test/java/org/apache/sis/io/wkt/ColorsTest.java
diff --git 
a/core/sis-metadata/src/test/java/org/apache/sis/io/wkt/ConventionTest.java 
b/core/sis-referencing/src/test/java/org/apache/sis/io/wkt/ConventionTest.java
similarity index 100%
rename from 
core/sis-metadata/src/test/java/org/apache/sis/io/wkt/ConventionTest.java
rename to 
core/sis-referencing/src/test/java/org/apache/sis/io/wkt/ConventionTest.java
diff --git 
a/core/sis-metadata/src/test/java/org/apache/sis/io/wkt/ElementTest.java 
b/core/sis-referencing/src/test/java/org/apache/sis/io/wkt/ElementTest.java
similarity index 100%
rename from 
core/sis-metadata/src/test/java/org/apache/sis/io/wkt/ElementTest.java
rename to 
core/sis-referencing/src/test/java/org/apache/sis/io/wkt/ElementTest.java
diff --git 
a/core/sis-metadata/src/test/java/org/apache/sis/io/wkt/FormatterTest.java 
b/core/sis-referencing/src/test/java/org/apache/sis/io/wkt/FormatterTest.java
similarity index 98%
rename from 
core/sis-metadata/src/test/java/org/apache/sis/io/wkt/FormatterTest.java
rename to 
core/sis-referencing/src/test/java/org/apache/sis/io/wkt/FormatterTest.java
index a314290..f70e0e8 100644
--- a/core/sis-metadata/src/test/java/org/apache/sis/io/wkt/FormatterTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/io/wkt/FormatterTest.java
@@ -29,7 +29,7 @@ import org.apache.sis.test.DependsOn;
 import org.apache.sis.test.TestCase;
 import org.junit.Test;
 
-import static org.apache.sis.test.MetadataAssert.*;
+import static org.apache.sis.test.ReferencingAssert.*;
 
 
 /**
diff --git 
a/core/sis-metadata/src/test/java/org/apache/sis/io/wkt/SymbolsTest.java 
b/core/sis-referencing/src/test/java/org/apache/sis/io/wkt/SymbolsTest.java
similarity index 100%
rename from 
core/sis-metadata/src/test/java/org/apache/sis/io/wkt/SymbolsTest.java
rename to 
core/sis-referencing/src/test/java/org/apache/sis/io/wkt/SymbolsTest.java
diff --git 
a/core/sis-metadata/src/test/java/org/apache/sis/io/wkt/TransliteratorTest.java 
b/core/sis-referencing/src/test/java/org/apache/sis/io/wkt/TransliteratorTest.java
similarity index 100%
rename from 
core/sis-metadata/src/test/java/org/apache/sis/io/wkt/TransliteratorTest.java
rename to 
core/sis-referencing/src/test/java/org/apache/sis/io/wkt/TransliteratorTest.java
diff --git 
a/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/ImmutableIdentifierTest.java
 
b/core/sis-referencing/src/test/java/org/apache/sis/metadata/iso/ImmutableIdentifierTest.java
similarity index 98%
rename from 
core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/ImmutableIdentifierTest.java
rename to 
core/sis-referencing/src/test/java/org/apache/sis/metadata/iso/ImmutableIdentifierTest.java
index 5952c47..6ec6251 100644
--- 
a/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/ImmutableIdentifierTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/metadata/iso/ImmutableIdentifierTest.java
@@ -30,10 +30,9 @@ import org.apache.sis.io.wkt.Convention;
 import org.apache.sis.test.DependsOnMethod;
 import org.apache.sis.test.xml.TestCase;
 import org.opengis.test.Validators;
-import org.apache.sis.test.DependsOn;
 import org.junit.Test;
 
-import static org.apache.sis.test.MetadataAssert.*;
+import static org.apache.sis.test.ReferencingAssert.*;
 import static org.opengis.metadata.Identifier.*;
 
 
@@ -45,7 +44,6 @@ import static org.opengis.metadata.Identifier.*;
  * @since   0.3
  * @module
  */
-@DependsOn(DefaultIdentifierTest.class)
 public final strictfp class ImmutableIdentifierTest extends TestCase {
     /**
      * Returns the properties map to be used in argument to test methods.
diff --git 
a/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterDescriptorGroupTest.java
 
b/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterDescriptorGroupTest.java
index 046c739..629f3d3 100644
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterDescriptorGroupTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterDescriptorGroupTest.java
@@ -32,7 +32,7 @@ import org.junit.Test;
 
 import static org.opengis.test.Validators.*;
 import static java.util.Collections.singletonMap;
-import static org.apache.sis.test.MetadataAssert.*;
+import static org.apache.sis.test.ReferencingAssert.*;
 import static org.opengis.referencing.IdentifiedObject.*;
 
 
diff --git 
a/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterDescriptorTest.java
 
b/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterDescriptorTest.java
index d97be2a..8ec3dae 100644
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterDescriptorTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterDescriptorTest.java
@@ -35,7 +35,7 @@ import org.apache.sis.test.TestCase;
 import org.junit.Test;
 
 import static org.opengis.test.Validators.*;
-import static org.apache.sis.test.MetadataAssert.*;
+import static org.apache.sis.test.ReferencingAssert.*;
 
 
 /**
diff --git 
a/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterValueTest.java
 
b/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterValueTest.java
index ba21073..caa4c5d 100644
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterValueTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterValueTest.java
@@ -32,7 +32,7 @@ import org.junit.Test;
 
 import static java.lang.StrictMath.*;
 import static org.opengis.test.Validators.*;
-import static org.apache.sis.test.MetadataAssert.*;
+import static org.apache.sis.test.ReferencingAssert.*;
 
 
 /**
diff --git 
a/core/sis-referencing/src/test/java/org/apache/sis/parameter/TensorValuesTest.java
 
b/core/sis-referencing/src/test/java/org/apache/sis/parameter/TensorValuesTest.java
index ae167d2..a47d554 100644
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/parameter/TensorValuesTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/parameter/TensorValuesTest.java
@@ -35,7 +35,7 @@ import org.junit.Test;
 
 import static java.util.Collections.singletonMap;
 import static org.opengis.test.Validators.validate;
-import static org.apache.sis.test.MetadataAssert.*;
+import static org.apache.sis.test.ReferencingAssert.*;
 import static org.apache.sis.internal.util.Constants.NUM_ROW;
 import static org.apache.sis.internal.util.Constants.NUM_COL;
 
diff --git 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/AbstractReferenceSystemTest.java
 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/AbstractReferenceSystemTest.java
index 7cbcfa0..e378d7a 100644
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/AbstractReferenceSystemTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/AbstractReferenceSystemTest.java
@@ -35,7 +35,7 @@ import org.junit.Test;
 
 import static org.opengis.referencing.ReferenceSystem.*;
 import static org.apache.sis.test.Assert.*;
-import static org.apache.sis.test.MetadataAssert.assertWktEquals;
+import static org.apache.sis.test.ReferencingAssert.assertWktEquals;
 
 
 /**
diff --git 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultEngineeringCRSTest.java
 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultEngineeringCRSTest.java
index 8b75811..e130975 100644
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultEngineeringCRSTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultEngineeringCRSTest.java
@@ -29,7 +29,7 @@ import org.apache.sis.test.xml.TestCase;
 import org.apache.sis.xml.Namespaces;
 import org.junit.Test;
 
-import static org.apache.sis.test.MetadataAssert.*;
+import static org.apache.sis.test.ReferencingAssert.*;
 
 
 /**
diff --git 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultGeocentricCRSTest.java
 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultGeocentricCRSTest.java
index 9a50c1e..66c289a 100644
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultGeocentricCRSTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultGeocentricCRSTest.java
@@ -30,7 +30,7 @@ import org.apache.sis.test.TestCase;
 import org.opengis.test.Validators;
 import org.junit.Test;
 
-import static org.apache.sis.test.MetadataAssert.*;
+import static org.apache.sis.test.ReferencingAssert.*;
 
 
 /**
diff --git 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultGeographicCRSTest.java
 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultGeographicCRSTest.java
index 1859e12..36dec06 100644
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultGeographicCRSTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultGeographicCRSTest.java
@@ -29,7 +29,7 @@ import org.apache.sis.test.DependsOnMethod;
 import org.apache.sis.test.TestCase;
 import org.junit.Test;
 
-import static org.apache.sis.test.MetadataAssert.*;
+import static org.apache.sis.test.ReferencingAssert.*;
 import static org.apache.sis.test.TestUtilities.getSingleton;
 
 
diff --git 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultImageCRSTest.java
 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultImageCRSTest.java
index 9cbee7f..65d7f1d 100644
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultImageCRSTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultImageCRSTest.java
@@ -32,7 +32,7 @@ import org.apache.sis.test.xml.TestCase;
 import org.apache.sis.xml.Namespaces;
 import org.junit.Test;
 
-import static org.apache.sis.test.MetadataAssert.*;
+import static org.apache.sis.test.ReferencingAssert.*;
 
 
 /**
diff --git 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultTemporalCRSTest.java
 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultTemporalCRSTest.java
index 9b07d48..b347b7e 100644
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultTemporalCRSTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultTemporalCRSTest.java
@@ -25,7 +25,7 @@ import org.apache.sis.io.wkt.Convention;
 import org.apache.sis.test.TestCase;
 import org.junit.Test;
 
-import static org.apache.sis.test.MetadataAssert.*;
+import static org.apache.sis.test.ReferencingAssert.*;
 import static 
org.apache.sis.internal.util.StandardDateFormat.MILLISECONDS_PER_DAY;
 import static 
org.apache.sis.internal.util.StandardDateFormat.NANOS_PER_MILLISECOND;
 
diff --git 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultVerticalCRSTest.java
 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultVerticalCRSTest.java
index e42bd87..f95a529 100644
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultVerticalCRSTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultVerticalCRSTest.java
@@ -21,7 +21,7 @@ import org.apache.sis.test.DependsOnMethod;
 import org.apache.sis.test.TestCase;
 import org.junit.Test;
 
-import static org.apache.sis.test.MetadataAssert.*;
+import static org.apache.sis.test.ReferencingAssert.*;
 
 
 /**
diff --git 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DefaultCoordinateSystemAxisTest.java
 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DefaultCoordinateSystemAxisTest.java
index 5ce1c2c..9bd3343 100644
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DefaultCoordinateSystemAxisTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DefaultCoordinateSystemAxisTest.java
@@ -28,7 +28,7 @@ import org.apache.sis.test.TestCase;
 import org.junit.Test;
 
 import static java.util.Collections.singletonMap;
-import static org.apache.sis.test.MetadataAssert.*;
+import static org.apache.sis.test.ReferencingAssert.*;
 import static org.apache.sis.referencing.cs.HardCodedAxes.*;
 import static org.apache.sis.referencing.IdentifiedObjects.getProperties;
 
diff --git 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DirectionAlongMeridianTest.java
 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DirectionAlongMeridianTest.java
index aef101e..dabdbbe 100644
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DirectionAlongMeridianTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DirectionAlongMeridianTest.java
@@ -22,7 +22,7 @@ import org.apache.sis.test.DependsOn;
 import org.apache.sis.test.TestCase;
 import org.junit.Test;
 
-import static org.apache.sis.test.MetadataAssert.*;
+import static org.apache.sis.test.ReferencingAssert.*;
 
 
 /**
diff --git 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultEllipsoidTest.java
 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultEllipsoidTest.java
index b0303a5..09a4b73 100644
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultEllipsoidTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultEllipsoidTest.java
@@ -29,7 +29,7 @@ import org.apache.sis.test.DependsOnMethod;
 import org.junit.Test;
 
 import static java.lang.StrictMath.*;
-import static org.apache.sis.test.MetadataAssert.*;
+import static org.apache.sis.test.ReferencingAssert.*;
 
 
 /**
diff --git 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultGeodeticDatumTest.java
 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultGeodeticDatumTest.java
index c32647a..b6ac4fc 100644
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultGeodeticDatumTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultGeodeticDatumTest.java
@@ -35,7 +35,7 @@ import org.apache.sis.test.DependsOn;
 import org.apache.sis.test.TestStep;
 import org.junit.Test;
 
-import static org.apache.sis.test.MetadataAssert.*;
+import static org.apache.sis.test.ReferencingAssert.*;
 import static org.apache.sis.referencing.GeodeticObjectVerifier.*;
 
 
diff --git 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultPrimeMeridianTest.java
 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultPrimeMeridianTest.java
index e5d5149..901a0bc 100644
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultPrimeMeridianTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultPrimeMeridianTest.java
@@ -33,7 +33,7 @@ import org.apache.sis.test.DependsOn;
 import org.junit.Test;
 
 import static java.util.Collections.singletonMap;
-import static org.apache.sis.test.MetadataAssert.*;
+import static org.apache.sis.test.ReferencingAssert.*;
 import static org.apache.sis.referencing.GeodeticObjectVerifier.*;
 
 
diff --git 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultVerticalDatumTest.java
 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultVerticalDatumTest.java
index ccce077..34cd0cc 100644
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultVerticalDatumTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultVerticalDatumTest.java
@@ -31,7 +31,7 @@ import org.apache.sis.test.xml.TestCase;
 import org.junit.Test;
 
 import static java.util.Collections.singletonMap;
-import static org.apache.sis.test.MetadataAssert.*;
+import static org.apache.sis.test.ReferencingAssert.*;
 import static org.apache.sis.referencing.GeodeticObjectVerifier.*;
 
 
diff --git 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/factory/GeodeticObjectFactoryTest.java
 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/factory/GeodeticObjectFactoryTest.java
index af54012..4fc04a0 100644
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/factory/GeodeticObjectFactoryTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/factory/GeodeticObjectFactoryTest.java
@@ -54,7 +54,7 @@ import org.junit.runner.RunWith;
 import org.junit.Ignore;
 import org.junit.Test;
 
-import static org.apache.sis.test.MetadataAssert.*;
+import static org.apache.sis.test.ReferencingAssert.*;
 
 
 /**
diff --git 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/DefaultConcatenatedOperationTest.java
 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/DefaultConcatenatedOperationTest.java
index bf2477f..a8de4ad 100644
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/DefaultConcatenatedOperationTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/DefaultConcatenatedOperationTest.java
@@ -35,7 +35,7 @@ import org.apache.sis.test.DependsOn;
 import org.apache.sis.test.xml.TestCase;
 import org.junit.Test;
 
-import static org.apache.sis.test.MetadataAssert.*;
+import static org.apache.sis.test.ReferencingAssert.*;
 import static org.apache.sis.test.TestUtilities.getSingleton;
 
 
diff --git 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/DefaultFormulaTest.java
 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/DefaultFormulaTest.java
index 9a9e524..fe6fa83 100644
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/DefaultFormulaTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/DefaultFormulaTest.java
@@ -20,7 +20,7 @@ import org.apache.sis.io.wkt.Convention;
 import org.apache.sis.test.TestCase;
 import org.junit.Test;
 
-import static org.apache.sis.test.MetadataAssert.*;
+import static org.apache.sis.test.ReferencingAssert.*;
 
 
 /**
diff --git 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/DefaultTransformationTest.java
 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/DefaultTransformationTest.java
index 55bb30e..1878fe9 100644
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/DefaultTransformationTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/DefaultTransformationTest.java
@@ -37,7 +37,7 @@ import org.apache.sis.test.DependsOn;
 import org.apache.sis.test.TestCase;
 import org.junit.Test;
 
-import static org.apache.sis.test.MetadataAssert.*;
+import static org.apache.sis.test.ReferencingAssert.*;
 
 
 /**
diff --git 
a/core/sis-referencing/src/test/java/org/apache/sis/test/ReferencingAssert.java 
b/core/sis-referencing/src/test/java/org/apache/sis/test/ReferencingAssert.java
index 6776155..007a2e3 100644
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/test/ReferencingAssert.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/test/ReferencingAssert.java
@@ -35,6 +35,9 @@ import org.opengis.referencing.cs.AxisDirection;
 import org.opengis.referencing.cs.CoordinateSystemAxis;
 import org.opengis.referencing.cs.RangeMeaning;
 import org.opengis.util.GenericName;
+import org.apache.sis.io.wkt.Symbols;
+import org.apache.sis.io.wkt.WKTFormat;
+import org.apache.sis.io.wkt.Convention;
 import org.apache.sis.geometry.AbstractEnvelope;
 import org.apache.sis.geometry.Envelopes;
 import org.apache.sis.geometry.GeneralDirectPosition;
@@ -52,12 +55,24 @@ import static java.lang.StrictMath.*;
  * from other modules and libraries.
  *
  * @author  Martin Desruisseaux (Geomatys)
- * @version 0.8
+ * @version 1.0
  * @since   0.3
  * @module
  */
 public strictfp class ReferencingAssert extends MetadataAssert {
     /**
+     * The formatter to be used by {@link #assertWktEquals(String, Object)}.
+     * This formatter uses the {@code “…”} quotation marks instead of {@code 
"…"}
+     * for easier readability of {@link String} constants in Java code.
+     */
+    private static final WKTFormat WKT_FORMAT = new WKTFormat(null, null);
+    static {
+        final Symbols s = new Symbols(Symbols.SQUARE_BRACKETS);
+        s.setPairedQuotes("“”", "\"\"");
+        WKT_FORMAT.setSymbols(s);
+    }
+
+    /**
      * For subclass constructor only.
      */
     protected ReferencingAssert() {
@@ -456,4 +471,67 @@ public strictfp class ReferencingAssert extends 
MetadataAssert {
             assertFalse("getMatrix().isIdentity()", ((LinearTransform) 
transform).getMatrix().isIdentity());
         }
     }
+
+    /**
+     * Asserts that the WKT 2 of the given object is equal to the expected one.
+     * This method expected the {@code “…”} quotation marks instead of {@code 
"…"}
+     * for easier readability of {@link String} constants in Java code.
+     *
+     * @param expected  the expected text, or {@code null} if {@code object} 
is expected to be null.
+     * @param object    the object to format in <cite>Well Known Text</cite> 
format, or {@code null}.
+     */
+    public static void assertWktEquals(final String expected, final Object 
object) {
+        assertWktEquals(Convention.WKT2, expected, object);
+    }
+
+    /**
+     * Asserts that the WKT of the given object according the given convention 
is equal to the expected one.
+     * This method expected the {@code “…”} quotation marks instead of {@code 
"…"} for easier readability of
+     * {@link String} constants in Java code.
+     *
+     * @param convention  the WKT convention to use.
+     * @param expected    the expected text, or {@code null} if {@code object} 
is expected to be null.
+     * @param object      the object to format in <cite>Well Known Text</cite> 
format, or {@code null}.
+     */
+    public static void assertWktEquals(final Convention convention, final 
String expected, final Object object) {
+        if (expected == null) {
+            assertNull(object);
+        } else {
+            assertNotNull(object);
+            final String wkt;
+            synchronized (WKT_FORMAT) {
+                WKT_FORMAT.setConvention(convention);
+                wkt = WKT_FORMAT.format(object);
+            }
+            assertMultilinesEquals((object instanceof IdentifiedObject) ?
+                    ((IdentifiedObject) object).getName().getCode() : 
object.getClass().getSimpleName(), expected, wkt);
+        }
+    }
+
+    /**
+     * Asserts that the WKT of the given object according the given convention 
is equal to the given regular expression.
+     * This method is like {@link #assertWktEquals(String, Object)}, but the 
use of regular expression allows some
+     * tolerance for example on numerical parameter values that may be subject 
to a limited form of rounding errors.
+     *
+     * @param convention  the WKT convention to use.
+     * @param expected    the expected regular expression, or {@code null} if 
{@code object} is expected to be null.
+     * @param object      the object to format in <cite>Well Known Text</cite> 
format, or {@code null}.
+     *
+     * @since 0.6
+     */
+    public static void assertWktEqualsRegex(final Convention convention, final 
String expected, final Object object) {
+        if (expected == null) {
+            assertNull(object);
+        } else {
+            assertNotNull(object);
+            final String wkt;
+            synchronized (WKT_FORMAT) {
+                WKT_FORMAT.setConvention(convention);
+                wkt = WKT_FORMAT.format(object);
+            }
+            if (!wkt.matches(expected.replace("\n", System.lineSeparator()))) {
+                fail("WKT does not match the expected regular expression. The 
WKT that we got is:\n" + wkt);
+            }
+        }
+    }
 }
diff --git 
a/core/sis-referencing/src/test/java/org/apache/sis/test/suite/ReferencingTestSuite.java
 
b/core/sis-referencing/src/test/java/org/apache/sis/test/suite/ReferencingTestSuite.java
index dec780f..aa46588 100644
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/test/suite/ReferencingTestSuite.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/test/suite/ReferencingTestSuite.java
@@ -41,6 +41,15 @@ import org.junit.BeforeClass;
     org.apache.sis.internal.jaxb.referencing.CodeTest.class,
     org.apache.sis.internal.jaxb.referencing.SecondDefiningParameterTest.class,
 
+    // Well Known Text (WKT) base.
+    org.apache.sis.io.wkt.ConventionTest.class,
+    org.apache.sis.io.wkt.SymbolsTest.class,
+    org.apache.sis.io.wkt.TransliteratorTest.class,
+    org.apache.sis.io.wkt.ColorsTest.class,
+    org.apache.sis.io.wkt.FormatterTest.class,
+    org.apache.sis.io.wkt.ElementTest.class,
+    org.apache.sis.metadata.iso.ImmutableIdentifierTest.class,
+
     // Identification of objects, needed by large parts of sis-referencing.
     org.apache.sis.referencing.NamedIdentifierTest.class,
     org.apache.sis.referencing.IdentifiedObjectsTest.class,

Reply via email to