aboutsummaryrefslogtreecommitdiff
path: root/test/unit
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2021-10-06 19:21:03 +0200
committerEven Rouault <even.rouault@spatialys.com>2021-10-06 19:21:03 +0200
commit3a67ea87fac5b835df7966fa801881eaf7503e78 (patch)
treef3535b3d4ab1dc5dc5202f0901cf3115a7196fa2 /test/unit
parenta92526a4ba60abc9c8909e5fa098b4102a44dc7e (diff)
downloadPROJ-3a67ea87fac5b835df7966fa801881eaf7503e78.tar.gz
PROJ-3a67ea87fac5b835df7966fa801881eaf7503e78.zip
ProjectedCRS::_isEquivalentTo(): ignore base CRS axis order even in EQUIVALENT mode if one of them is lacking an explicit CS order (refs #2886)
Diffstat (limited to 'test/unit')
-rw-r--r--test/unit/test_crs.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/unit/test_crs.cpp b/test/unit/test_crs.cpp
index bc42d834..a1838896 100644
--- a/test/unit/test_crs.cpp
+++ b/test/unit/test_crs.cpp
@@ -6707,3 +6707,23 @@ TEST(crs, projected_alterParametersLinearUnit_do_not_mess_deriving_conversion) {
}
EXPECT_EQ(projCRS->derivingConversion()->targetCRS().get(), projCRS.get());
}
+
+// ---------------------------------------------------------------------------
+
+TEST(crs, projected_is_equivalent_to_with_proj4_extension) {
+ const auto obj1 = PROJStringParser().createFromPROJString(
+ "+proj=omerc +lat_0=50 +alpha=50.0 +no_rot +a=6378144.0 +b=6356759.0 "
+ "+lon_0=8.0 +type=crs");
+ const auto crs1 = nn_dynamic_pointer_cast<ProjectedCRS>(obj1);
+ ASSERT_TRUE(crs1 != nullptr);
+
+ const auto wkt = crs1->exportToWKT(
+ WKTFormatter::create(WKTFormatter::Convention::WKT2_2019).get());
+ const auto obj_from_wkt = WKTParser().createFromWKT(wkt);
+ const auto crs_from_wkt =
+ nn_dynamic_pointer_cast<ProjectedCRS>(obj_from_wkt);
+
+ // Check equivalence of the CRS from PROJ.4 and WKT
+ EXPECT_TRUE(crs1->isEquivalentTo(crs_from_wkt.get(),
+ IComparable::Criterion::EQUIVALENT));
+}