diff options
Diffstat (limited to 'test/unit/test_io.cpp')
| -rw-r--r-- | test/unit/test_io.cpp | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/test/unit/test_io.cpp b/test/unit/test_io.cpp index 581083b3..767c39e9 100644 --- a/test/unit/test_io.cpp +++ b/test/unit/test_io.cpp @@ -2061,6 +2061,45 @@ TEST(wkt_parse, vertcrs_WKT1_GDAL_minimum) { // --------------------------------------------------------------------------- +TEST(wkt_parse, VERTCS_WKT1_ESRI) { + auto wkt = "VERTCS[\"EGM2008_Geoid\",VDATUM[\"EGM2008_Geoid\"]," + "PARAMETER[\"Vertical_Shift\",0.0]," + "PARAMETER[\"Direction\",1.0],UNIT[\"Meter\",1.0]]"; + + auto obj = WKTParser().createFromWKT(wkt); + auto crs = nn_dynamic_pointer_cast<VerticalCRS>(obj); + ASSERT_TRUE(crs != nullptr); + EXPECT_EQ(crs->nameStr(), "EGM2008_Geoid"); + + auto datum = crs->datum(); + EXPECT_EQ(datum->nameStr(), "EGM2008_Geoid"); + + auto cs = crs->coordinateSystem(); + ASSERT_EQ(cs->axisList().size(), 1U); + EXPECT_EQ(cs->axisList()[0]->direction(), AxisDirection::UP); + + EXPECT_EQ(WKTParser().guessDialect(wkt), + WKTParser::WKTGuessedDialect::WKT1_ESRI); +} + +// --------------------------------------------------------------------------- + +TEST(wkt_parse, VERTCS_WKT1_ESRI_down) { + auto wkt = "VERTCS[\"Caspian\",VDATUM[\"Caspian_Sea\"]," + "PARAMETER[\"Vertical_Shift\",0.0]," + "PARAMETER[\"Direction\",-1.0],UNIT[\"Meter\",1.0]]"; + + auto obj = WKTParser().createFromWKT(wkt); + auto crs = nn_dynamic_pointer_cast<VerticalCRS>(obj); + ASSERT_TRUE(crs != nullptr); + + auto cs = crs->coordinateSystem(); + ASSERT_EQ(cs->axisList().size(), 1U); + EXPECT_EQ(cs->axisList()[0]->direction(), AxisDirection::DOWN); +} + +// --------------------------------------------------------------------------- + TEST(wkt_parse, vertcrs_WKT1_LAS_ftUS) { auto wkt = "VERT_CS[\"NAVD88 - Geoid03 (Feet)\"," " VERT_DATUM[\"unknown\",2005]," |
