aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2018-12-04 16:22:44 +0100
committerEven Rouault <even.rouault@spatialys.com>2018-12-04 17:05:32 +0100
commit57b00a63c6caee1a53961d542904f7c9b1f014c9 (patch)
tree599ca27d29cda4519687ca324f96b2662ba456f9 /test
parentd06c1c55c1c3fc7209abdbdfbf2e3cf34f18cf98 (diff)
downloadPROJ-57b00a63c6caee1a53961d542904f7c9b1f014c9.tar.gz
PROJ-57b00a63c6caee1a53961d542904f7c9b1f014c9.zip
Improve management of 'deprecated' suffix in object names
Diffstat (limited to 'test')
-rw-r--r--test/unit/test_c_api.cpp76
-rw-r--r--test/unit/test_io.cpp23
2 files changed, 84 insertions, 15 deletions
diff --git a/test/unit/test_c_api.cpp b/test/unit/test_c_api.cpp
index f0480ebe..bec965ce 100644
--- a/test/unit/test_c_api.cpp
+++ b/test/unit/test_c_api.cpp
@@ -1625,6 +1625,21 @@ TEST_F(CApi, proj_obj_create_geographic_crs) {
std::string("System of the Unified Trigonometrical Cadastral "
"Network (Ferro)"));
}
+
+ // WKT1 with (deprecated)
+ {
+ auto crs = proj_obj_create_geographic_crs(
+ m_ctxt, "SAD69 (deprecated)", "South_American_Datum_1969",
+ "GRS 1967", 6378160, 298.247167427, "Greenwich", 0, "Degree",
+ 0.0174532925199433, cs);
+ ObjectKeeper keeper(crs);
+ ASSERT_NE(crs, nullptr);
+
+ auto name = proj_obj_get_name(crs);
+ ASSERT_TRUE(name != nullptr);
+ EXPECT_EQ(name, std::string("SAD69"));
+ EXPECT_TRUE(proj_obj_is_deprecated(crs));
+ }
}
// ---------------------------------------------------------------------------
@@ -2199,20 +2214,38 @@ TEST_F(CApi, proj_obj_crs_alter_geodetic_crs) {
EXPECT_TRUE(
proj_obj_is_equivalent_to(geodCRSAltered, newGeodCRS, PJ_COMP_STRICT));
- auto projCRSAltered =
- proj_obj_crs_alter_geodetic_crs(m_ctxt, projCRS, newGeodCRS);
- ObjectKeeper keeper_projCRSAltered(projCRSAltered);
- ASSERT_NE(projCRSAltered, nullptr);
+ {
+ auto projCRSAltered =
+ proj_obj_crs_alter_geodetic_crs(m_ctxt, projCRS, newGeodCRS);
+ ObjectKeeper keeper_projCRSAltered(projCRSAltered);
+ ASSERT_NE(projCRSAltered, nullptr);
- EXPECT_EQ(proj_obj_get_type(projCRSAltered), PJ_OBJ_TYPE_PROJECTED_CRS);
+ EXPECT_EQ(proj_obj_get_type(projCRSAltered), PJ_OBJ_TYPE_PROJECTED_CRS);
- auto projCRSAltered_geodCRS =
- proj_obj_crs_get_geodetic_crs(m_ctxt, projCRSAltered);
- ObjectKeeper keeper_projCRSAltered_geodCRS(projCRSAltered_geodCRS);
- ASSERT_NE(projCRSAltered_geodCRS, nullptr);
+ auto projCRSAltered_geodCRS =
+ proj_obj_crs_get_geodetic_crs(m_ctxt, projCRSAltered);
+ ObjectKeeper keeper_projCRSAltered_geodCRS(projCRSAltered_geodCRS);
+ ASSERT_NE(projCRSAltered_geodCRS, nullptr);
+
+ EXPECT_TRUE(proj_obj_is_equivalent_to(projCRSAltered_geodCRS,
+ newGeodCRS, PJ_COMP_STRICT));
+ }
- EXPECT_TRUE(proj_obj_is_equivalent_to(projCRSAltered_geodCRS, newGeodCRS,
- PJ_COMP_STRICT));
+ // Check that proj_obj_crs_alter_geodetic_crs preserves deprecation flag
+ {
+ auto projCRSDeprecated =
+ proj_obj_alter_name(m_ctxt, projCRS, "new name (deprecated)");
+ ObjectKeeper keeper_projCRSDeprecated(projCRSDeprecated);
+ ASSERT_NE(projCRSDeprecated, nullptr);
+
+ auto projCRSAltered = proj_obj_crs_alter_geodetic_crs(
+ m_ctxt, projCRSDeprecated, newGeodCRS);
+ ObjectKeeper keeper_projCRSAltered(projCRSAltered);
+ ASSERT_NE(projCRSAltered, nullptr);
+
+ EXPECT_EQ(proj_obj_get_name(projCRSAltered), std::string("new name"));
+ EXPECT_TRUE(proj_obj_is_deprecated(projCRSAltered));
+ }
}
// ---------------------------------------------------------------------------
@@ -2338,11 +2371,24 @@ TEST_F(CApi, proj_obj_alter_name) {
ObjectKeeper keeper(obj);
ASSERT_NE(obj, nullptr);
- auto alteredObj = proj_obj_alter_name(m_ctxt, obj, "new name");
- ObjectKeeper keeper_alteredObj(alteredObj);
- ASSERT_NE(alteredObj, nullptr);
+ {
+ auto alteredObj = proj_obj_alter_name(m_ctxt, obj, "new name");
+ ObjectKeeper keeper_alteredObj(alteredObj);
+ ASSERT_NE(alteredObj, nullptr);
+
+ EXPECT_EQ(std::string(proj_obj_get_name(alteredObj)), "new name");
+ EXPECT_FALSE(proj_obj_is_deprecated(alteredObj));
+ }
- EXPECT_EQ(std::string(proj_obj_get_name(alteredObj)), "new name");
+ {
+ auto alteredObj =
+ proj_obj_alter_name(m_ctxt, obj, "new name (deprecated)");
+ ObjectKeeper keeper_alteredObj(alteredObj);
+ ASSERT_NE(alteredObj, nullptr);
+
+ EXPECT_EQ(std::string(proj_obj_get_name(alteredObj)), "new name");
+ EXPECT_TRUE(proj_obj_is_deprecated(alteredObj));
+ }
}
// ---------------------------------------------------------------------------
diff --git a/test/unit/test_io.cpp b/test/unit/test_io.cpp
index 243add6f..1f2ec323 100644
--- a/test/unit/test_io.cpp
+++ b/test/unit/test_io.cpp
@@ -513,6 +513,29 @@ TEST(wkt_parse, wkt1_geographic_old_datum_name_witout_EPSG_code) {
// ---------------------------------------------------------------------------
+TEST(wkt_parse, wkt1_geographic_deprecated) {
+ auto wkt = "GEOGCS[\"SAD69 (deprecated)\",\n"
+ " DATUM[\"South_American_Datum_1969\",\n"
+ " SPHEROID[\"GRS 1967\",6378160,298.247167427,\n"
+ " AUTHORITY[\"EPSG\",\"7036\"]],\n"
+ " AUTHORITY[\"EPSG\",\"6291\"]],\n"
+ " PRIMEM[\"Greenwich\",0,\n"
+ " AUTHORITY[\"EPSG\",\"8901\"]],\n"
+ " UNIT[\"degree\",0.0174532925199433,\n"
+ " AUTHORITY[\"EPSG\",\"9108\"]],\n"
+ " AUTHORITY[\"EPSG\",\"4291\"]]";
+ auto obj = WKTParser()
+ .attachDatabaseContext(DatabaseContext::create())
+ .createFromWKT(wkt);
+ auto crs = nn_dynamic_pointer_cast<GeographicCRS>(obj);
+ ASSERT_TRUE(crs != nullptr);
+
+ EXPECT_EQ(crs->nameStr(), "SAD69");
+ EXPECT_TRUE(crs->isDeprecated());
+}
+
+// ---------------------------------------------------------------------------
+
static std::string contentWKT2_EPSG_4326(
"[\"WGS 84\",\n"
" DATUM[\"World Geodetic System 1984\",\n"