From 3121d9bc309b439adcc2ab9743a3d2b3a8f48296 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 17 Jan 2019 10:40:12 +0100 Subject: import/export PROJ strings from ISO19111 code: require/output +type=crs for CRS objects (refs #1214) --- test/unit/test_c_api.cpp | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) (limited to 'test/unit/test_c_api.cpp') diff --git a/test/unit/test_c_api.cpp b/test/unit/test_c_api.cpp index 6353d46f..4c13a5e2 100644 --- a/test/unit/test_c_api.cpp +++ b/test/unit/test_c_api.cpp @@ -492,12 +492,14 @@ TEST_F(CApi, proj_as_proj_string) { { auto proj_5 = proj_as_proj_string(m_ctxt, obj, PJ_PROJ_5, nullptr); ASSERT_NE(proj_5, nullptr); - EXPECT_EQ(std::string(proj_5), "+proj=longlat +datum=WGS84 +no_defs"); + EXPECT_EQ(std::string(proj_5), + "+proj=longlat +datum=WGS84 +no_defs +type=crs"); } { auto proj_4 = proj_as_proj_string(m_ctxt, obj, PJ_PROJ_4, nullptr); ASSERT_NE(proj_4, nullptr); - EXPECT_EQ(std::string(proj_4), "+proj=longlat +datum=WGS84 +no_defs"); + EXPECT_EQ(std::string(proj_4), + "+proj=longlat +datum=WGS84 +no_defs +type=crs"); } } @@ -518,22 +520,24 @@ TEST_F(CApi, proj_as_proj_string_incompatible_WKT1) { // --------------------------------------------------------------------------- TEST_F(CApi, proj_as_proj_string_etmerc_option_yes) { - auto obj = proj_create_from_proj_string(m_ctxt, "+proj=tmerc", nullptr); + auto obj = + proj_create_from_proj_string(m_ctxt, "+proj=tmerc +type=crs", nullptr); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); const char *options[] = {"USE_ETMERC=YES", nullptr}; auto str = proj_as_proj_string(m_ctxt, obj, PJ_PROJ_4, options); ASSERT_NE(str, nullptr); - EXPECT_EQ(str, std::string("+proj=etmerc +lat_0=0 +lon_0=0 +k=1 +x_0=0 " - "+y_0=0 +datum=WGS84 +units=m +no_defs")); + EXPECT_EQ(str, + std::string("+proj=etmerc +lat_0=0 +lon_0=0 +k=1 +x_0=0 " + "+y_0=0 +datum=WGS84 +units=m +no_defs +type=crs")); } // --------------------------------------------------------------------------- TEST_F(CApi, proj_as_proj_string_etmerc_option_no) { - auto obj = - proj_create_from_proj_string(m_ctxt, "+proj=utm +zone=31", nullptr); + auto obj = proj_create_from_proj_string( + m_ctxt, "+proj=utm +zone=31 +type=crs", nullptr); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); @@ -542,7 +546,7 @@ TEST_F(CApi, proj_as_proj_string_etmerc_option_no) { ASSERT_NE(str, nullptr); EXPECT_EQ(str, std::string("+proj=tmerc +lat_0=0 +lon_0=3 +k=0.9996 " "+x_0=500000 +y_0=0 +datum=WGS84 +units=m " - "+no_defs")); + "+no_defs +type=crs")); } // --------------------------------------------------------------------------- @@ -563,7 +567,7 @@ TEST_F(CApi, proj_crs_create_bound_crs_to_WGS84) { "+proj=sterea +lat_0=46 +lon_0=25 +k=0.99975 +x_0=500000 " "+y_0=500000 +ellps=krass " "+towgs84=2.329,-147.042,-92.08,-0.309,0.325,0.497,5.69 " - "+units=m +no_defs"); + "+units=m +no_defs +type=crs"); auto base_crs = proj_get_source_crs(m_ctxt, res); ObjectKeeper keeper_base_crs(base_crs); @@ -2432,8 +2436,8 @@ TEST_F(CApi, proj_crs_alter_geodetic_crs) { ObjectKeeper keeper(projCRS); ASSERT_NE(projCRS, nullptr); - auto newGeodCRS = - proj_create_from_proj_string(m_ctxt, "+proj=longlat", nullptr); + auto newGeodCRS = proj_create_from_proj_string( + m_ctxt, "+proj=longlat +type=crs", nullptr); ObjectKeeper keeper_newGeodCRS(newGeodCRS); ASSERT_NE(newGeodCRS, nullptr); -- cgit v1.2.3 From c0ac895d77e823fe9a9458d013eb0f6378f39060 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 17 Jan 2019 17:01:20 +0100 Subject: Remove proj_create_from_proj_string() and proj_create_from_user_input(), and make proj_create() do more or less what proj_create_from_user_input() did before (fixes #1214) --- test/unit/test_c_api.cpp | 79 ++++++++++++++++++------------------------------ 1 file changed, 29 insertions(+), 50 deletions(-) (limited to 'test/unit/test_c_api.cpp') diff --git a/test/unit/test_c_api.cpp b/test/unit/test_c_api.cpp index 4c13a5e2..ff29185f 100644 --- a/test/unit/test_c_api.cpp +++ b/test/unit/test_c_api.cpp @@ -148,15 +148,14 @@ class CApi : public ::testing::Test { // --------------------------------------------------------------------------- -TEST_F(CApi, proj_create_from_user_input) { +TEST_F(CApi, proj_create) { proj_destroy(nullptr); - EXPECT_EQ(proj_create_from_user_input(m_ctxt, "invalid", nullptr), nullptr); + EXPECT_EQ(proj_create(m_ctxt, "invalid"), nullptr); { - auto obj = proj_create_from_user_input( - m_ctxt, - GeographicCRS::EPSG_4326->exportToWKT(WKTFormatter::create().get()) - .c_str(), - nullptr); + auto obj = + proj_create(m_ctxt, GeographicCRS::EPSG_4326 + ->exportToWKT(WKTFormatter::create().get()) + .c_str()); ObjectKeeper keeper(obj); EXPECT_NE(obj, nullptr); @@ -182,7 +181,7 @@ TEST_F(CApi, proj_create_from_user_input) { EXPECT_EQ(info.definition, std::string("")); } { - auto obj = proj_create_from_user_input(m_ctxt, "EPSG:4326", nullptr); + auto obj = proj_create(m_ctxt, "EPSG:4326"); ObjectKeeper keeper(obj); EXPECT_NE(obj, nullptr); } @@ -318,17 +317,6 @@ TEST_F(CApi, proj_create_from_wkt) { // --------------------------------------------------------------------------- -TEST_F(CApi, proj_create_from_proj_string) { - - EXPECT_EQ(proj_create_from_proj_string(m_ctxt, "invalid", nullptr), - nullptr); - auto obj = proj_create_from_proj_string(m_ctxt, "+proj=longlat", nullptr); - ObjectKeeper keeper(obj); - EXPECT_NE(obj, nullptr); -} - -// --------------------------------------------------------------------------- - TEST_F(CApi, proj_as_wkt) { auto obj = proj_create_from_wkt( m_ctxt, @@ -520,8 +508,7 @@ TEST_F(CApi, proj_as_proj_string_incompatible_WKT1) { // --------------------------------------------------------------------------- TEST_F(CApi, proj_as_proj_string_etmerc_option_yes) { - auto obj = - proj_create_from_proj_string(m_ctxt, "+proj=tmerc +type=crs", nullptr); + auto obj = proj_create(m_ctxt, "+proj=tmerc +type=crs"); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); @@ -536,8 +523,7 @@ TEST_F(CApi, proj_as_proj_string_etmerc_option_yes) { // --------------------------------------------------------------------------- TEST_F(CApi, proj_as_proj_string_etmerc_option_no) { - auto obj = proj_create_from_proj_string( - m_ctxt, "+proj=utm +zone=31 +type=crs", nullptr); + auto obj = proj_create(m_ctxt, "+proj=utm +zone=31 +type=crs"); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); @@ -1698,8 +1684,7 @@ TEST_F(CApi, proj_get_area_of_use) { EXPECT_EQ(std::string(name), "World"); } { - auto obj = - proj_create_from_user_input(m_ctxt, "+proj=longlat", nullptr); + auto obj = proj_create(m_ctxt, "+proj=longlat +type=crs"); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); EXPECT_FALSE(proj_get_area_of_use(m_ctxt, obj, nullptr, nullptr, @@ -1726,8 +1711,7 @@ TEST_F(CApi, proj_coordoperation_get_accuracy) { EXPECT_EQ(proj_coordoperation_get_accuracy(m_ctxt, obj), 16.0); } { - auto obj = - proj_create_from_user_input(m_ctxt, "+proj=helmert", nullptr); + auto obj = proj_create(m_ctxt, "+proj=helmert"); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); EXPECT_EQ(proj_coordoperation_get_accuracy(m_ctxt, obj), -1.0); @@ -1750,11 +1734,10 @@ TEST_F(CApi, proj_create_geographic_crs) { ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); - auto objRef = proj_create_from_user_input( - m_ctxt, - GeographicCRS::EPSG_4326->exportToWKT(WKTFormatter::create().get()) - .c_str(), - nullptr); + auto objRef = + proj_create(m_ctxt, GeographicCRS::EPSG_4326 + ->exportToWKT(WKTFormatter::create().get()) + .c_str()); ObjectKeeper keeperobjRef(objRef); EXPECT_NE(objRef, nullptr); @@ -1787,11 +1770,10 @@ TEST_F(CApi, proj_create_geographic_crs) { ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); - auto objRef = proj_create_from_user_input( - m_ctxt, - GeographicCRS::EPSG_4326->exportToWKT(WKTFormatter::create().get()) - .c_str(), - nullptr); + auto objRef = + proj_create(m_ctxt, GeographicCRS::EPSG_4326 + ->exportToWKT(WKTFormatter::create().get()) + .c_str()); ObjectKeeper keeperobjRef(objRef); EXPECT_NE(objRef, nullptr); @@ -1806,11 +1788,10 @@ TEST_F(CApi, proj_create_geographic_crs) { ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); - auto objRef = proj_create_from_user_input( - m_ctxt, - GeographicCRS::EPSG_4269->exportToWKT(WKTFormatter::create().get()) - .c_str(), - nullptr); + auto objRef = + proj_create(m_ctxt, GeographicCRS::EPSG_4269 + ->exportToWKT(WKTFormatter::create().get()) + .c_str()); ObjectKeeper keeperobjRef(objRef); EXPECT_NE(objRef, nullptr); @@ -1865,11 +1846,10 @@ TEST_F(CApi, proj_create_geocentric_crs) { ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); - auto objRef = proj_create_from_user_input( - m_ctxt, - GeographicCRS::EPSG_4978->exportToWKT(WKTFormatter::create().get()) - .c_str(), - nullptr); + auto objRef = + proj_create(m_ctxt, GeographicCRS::EPSG_4978 + ->exportToWKT(WKTFormatter::create().get()) + .c_str()); ObjectKeeper keeperobjRef(objRef); EXPECT_NE(objRef, nullptr); @@ -2415,7 +2395,7 @@ TEST_F(CApi, proj_context_get_database_metadata) { // --------------------------------------------------------------------------- TEST_F(CApi, proj_clone) { - auto obj = proj_create_from_proj_string(m_ctxt, "+proj=longlat", nullptr); + auto obj = proj_create(m_ctxt, "+proj=longlat"); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); @@ -2436,8 +2416,7 @@ TEST_F(CApi, proj_crs_alter_geodetic_crs) { ObjectKeeper keeper(projCRS); ASSERT_NE(projCRS, nullptr); - auto newGeodCRS = proj_create_from_proj_string( - m_ctxt, "+proj=longlat +type=crs", nullptr); + auto newGeodCRS = proj_create(m_ctxt, "+proj=longlat +type=crs"); ObjectKeeper keeper_newGeodCRS(newGeodCRS); ASSERT_NE(newGeodCRS, nullptr); -- cgit v1.2.3