aboutsummaryrefslogtreecommitdiff
path: root/test/unit/test_crs.cpp
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2020-04-02 22:36:37 +0200
committerEven Rouault <even.rouault@spatialys.com>2020-04-03 10:05:48 +0200
commitf4827e0a3b5c5b07ccf82fc6cd3334079e75e02c (patch)
tree43e14921ef9030a9d6aa7c90cc0643082d162f5a /test/unit/test_crs.cpp
parentd2467ab2af59bec9187ee81742aca366e471352d (diff)
downloadPROJ-f4827e0a3b5c5b07ccf82fc6cd3334079e75e02c.tar.gz
PROJ-f4827e0a3b5c5b07ccf82fc6cd3334079e75e02c.zip
Make sure that importing a Projected 3D CRS from WKT:2019 keeps the base geographic CRS as 3D (fixes #2122)
Diffstat (limited to 'test/unit/test_crs.cpp')
-rw-r--r--test/unit/test_crs.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/test/unit/test_crs.cpp b/test/unit/test_crs.cpp
index c17635db..2bde8ee3 100644
--- a/test/unit/test_crs.cpp
+++ b/test/unit/test_crs.cpp
@@ -5674,6 +5674,22 @@ TEST(crs, promoteTo3D_and_demoteTo2D) {
EXPECT_EQ(
crs3DAsProjected->baseCRS()->coordinateSystem()->axisList().size(),
3U);
+
+ // Check that importing an exported Projected 3D CRS as WKT keeps
+ // the 3D aspect of the baseCRS (see #2122)
+ {
+ WKTFormatterNNPtr f(
+ WKTFormatter::create(WKTFormatter::Convention::WKT2_2019));
+ crs3DAsProjected->exportToWKT(f.get());
+ auto obj = WKTParser().createFromWKT(f->toString());
+ auto crsFromWkt = nn_dynamic_pointer_cast<ProjectedCRS>(obj);
+ ASSERT_TRUE(crsFromWkt != nullptr);
+ EXPECT_EQ(crsFromWkt->coordinateSystem()->axisList().size(), 3U);
+ EXPECT_EQ(
+ crsFromWkt->baseCRS()->coordinateSystem()->axisList().size(),
+ 3U);
+ }
+
EXPECT_TRUE(crs3D->promoteTo3D(std::string(), nullptr)
->isEquivalentTo(crs3D.get()));