From 1ce2cc80a4a0ff248cda778ae16de51946fa61b7 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Mon, 24 Feb 2020 15:40:25 +0100 Subject: CompoundCRS::create(): reject combinations of components not allowed by ISO 19111 --- test/unit/test_operation.cpp | 41 ++++++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 21 deletions(-) (limited to 'test/unit/test_operation.cpp') diff --git a/test/unit/test_operation.cpp b/test/unit/test_operation.cpp index 63ed97e7..1af41fde 100644 --- a/test/unit/test_operation.cpp +++ b/test/unit/test_operation.cpp @@ -1142,16 +1142,32 @@ TEST(operation, transformation_inverse) { // --------------------------------------------------------------------------- +static VerticalCRSNNPtr createVerticalCRS() { + PropertyMap propertiesVDatum; + propertiesVDatum.set(Identifier::CODESPACE_KEY, "EPSG") + .set(Identifier::CODE_KEY, 5101) + .set(IdentifiedObject::NAME_KEY, "Ordnance Datum Newlyn"); + auto vdatum = VerticalReferenceFrame::create(propertiesVDatum); + PropertyMap propertiesCRS; + propertiesCRS.set(Identifier::CODESPACE_KEY, "EPSG") + .set(Identifier::CODE_KEY, 5701) + .set(IdentifiedObject::NAME_KEY, "ODN height"); + return VerticalCRS::create( + propertiesCRS, vdatum, + VerticalCS::createGravityRelatedHeight(UnitOfMeasure::METRE)); +} + +// --------------------------------------------------------------------------- + TEST(operation, transformation_createTOWGS84) { EXPECT_THROW(Transformation::createTOWGS84(GeographicCRS::EPSG_4326, std::vector()), InvalidOperation); - auto crsIn = CompoundCRS::create(PropertyMap(), std::vector{}); - EXPECT_THROW( - Transformation::createTOWGS84(crsIn, std::vector(7, 0)), - InvalidOperation); + EXPECT_THROW(Transformation::createTOWGS84(createVerticalCRS(), + std::vector(7, 0)), + InvalidOperation); } // --------------------------------------------------------------------------- @@ -6563,23 +6579,6 @@ TEST(operation, WGS84_G1762_to_compoundCRS_with_bound_vertCRS) { // --------------------------------------------------------------------------- -static VerticalCRSNNPtr createVerticalCRS() { - PropertyMap propertiesVDatum; - propertiesVDatum.set(Identifier::CODESPACE_KEY, "EPSG") - .set(Identifier::CODE_KEY, 5101) - .set(IdentifiedObject::NAME_KEY, "Ordnance Datum Newlyn"); - auto vdatum = VerticalReferenceFrame::create(propertiesVDatum); - PropertyMap propertiesCRS; - propertiesCRS.set(Identifier::CODESPACE_KEY, "EPSG") - .set(Identifier::CODE_KEY, 5701) - .set(IdentifiedObject::NAME_KEY, "ODN height"); - return VerticalCRS::create( - propertiesCRS, vdatum, - VerticalCS::createGravityRelatedHeight(UnitOfMeasure::METRE)); -} - -// --------------------------------------------------------------------------- - TEST(operation, compoundCRS_to_geogCRS) { auto compound = CompoundCRS::create( -- cgit v1.2.3