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 2019/06/21 15:48:15 UTC
[sis] 02/10: Initial move of WKT parser/formatter from sis-metadata
module to sis-referencing. https://issues.apache.org/jira/browse/SIS-463
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 <ma...@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,