diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2022-03-16 14:00:35 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-03-16 14:00:35 +0100 |
| commit | 1c1a3c5930229644440a7e41d032cc217cf2f8c0 (patch) | |
| tree | f0d089ce5146dad01d0d2d7db046bc61315cf169 /test | |
| parent | 77751f6c9e023748a90793774e8e4b554515e8b5 (diff) | |
| parent | fdf5111a9a790926aacec75a07d30508a8ed9c91 (diff) | |
| download | PROJ-1c1a3c5930229644440a7e41d032cc217cf2f8c0.tar.gz PROJ-1c1a3c5930229644440a7e41d032cc217cf2f8c0.zip | |
Merge pull request #3118 from rouault/dynamic_datum_isequivalentto
Fix comparison of GeodeticRefrenceFrame vs DynamicGeodeticReferenceFrame
Diffstat (limited to 'test')
| -rw-r--r-- | test/unit/test_datum.cpp | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/test/unit/test_datum.cpp b/test/unit/test_datum.cpp index 26098d5c..457bde4d 100644 --- a/test/unit/test_datum.cpp +++ b/test/unit/test_datum.cpp @@ -287,6 +287,33 @@ TEST(datum, dynamic_geodetic_reference_frame) { drf->exportToWKT( WKTFormatter::create(WKTFormatter::Convention::WKT2_2019).get()), expected_wtk2_2019); + + EXPECT_TRUE(drf->isEquivalentTo(drf.get())); + EXPECT_TRUE( + drf->isEquivalentTo(drf.get(), IComparable::Criterion::EQUIVALENT)); + EXPECT_FALSE(drf->isEquivalentTo(createUnrelatedObject().get())); + + // "Same" datum, except that it is a non-dynamic one + auto datum = GeodeticReferenceFrame::create( + PropertyMap().set(IdentifiedObject::NAME_KEY, "test"), Ellipsoid::WGS84, + optional<std::string>("My anchor"), PrimeMeridian::GREENWICH); + EXPECT_FALSE(datum->isEquivalentTo(drf.get())); + EXPECT_FALSE(drf->isEquivalentTo(datum.get())); + EXPECT_TRUE( + datum->isEquivalentTo(drf.get(), IComparable::Criterion::EQUIVALENT)); + EXPECT_TRUE( + drf->isEquivalentTo(datum.get(), IComparable::Criterion::EQUIVALENT)); + + auto unrelated_datum = GeodeticReferenceFrame::create( + PropertyMap().set(IdentifiedObject::NAME_KEY, "test2"), + Ellipsoid::WGS84, optional<std::string>("My anchor"), + PrimeMeridian::GREENWICH); + EXPECT_FALSE(unrelated_datum->isEquivalentTo(drf.get())); + EXPECT_FALSE(drf->isEquivalentTo(unrelated_datum.get())); + EXPECT_FALSE(unrelated_datum->isEquivalentTo( + drf.get(), IComparable::Criterion::EQUIVALENT)); + EXPECT_FALSE(drf->isEquivalentTo(unrelated_datum.get(), + IComparable::Criterion::EQUIVALENT)); } // --------------------------------------------------------------------------- @@ -395,6 +422,32 @@ TEST(datum, dynamic_vertical_reference_frame) { drf->exportToWKT( WKTFormatter::create(WKTFormatter::Convention::WKT2_2019).get()), expected_wtk2_2019); + + EXPECT_TRUE(drf->isEquivalentTo(drf.get())); + EXPECT_TRUE( + drf->isEquivalentTo(drf.get(), IComparable::Criterion::EQUIVALENT)); + EXPECT_FALSE(drf->isEquivalentTo(createUnrelatedObject().get())); + + // "Same" datum, except that it is a non-dynamic one + auto datum = VerticalReferenceFrame::create( + PropertyMap().set(IdentifiedObject::NAME_KEY, "test"), + optional<std::string>("My anchor"), optional<RealizationMethod>()); + EXPECT_FALSE(datum->isEquivalentTo(drf.get())); + EXPECT_FALSE(drf->isEquivalentTo(datum.get())); + EXPECT_TRUE( + datum->isEquivalentTo(drf.get(), IComparable::Criterion::EQUIVALENT)); + EXPECT_TRUE( + drf->isEquivalentTo(datum.get(), IComparable::Criterion::EQUIVALENT)); + + auto unrelated_datum = VerticalReferenceFrame::create( + PropertyMap().set(IdentifiedObject::NAME_KEY, "test2"), + optional<std::string>("My anchor"), optional<RealizationMethod>()); + EXPECT_FALSE(unrelated_datum->isEquivalentTo(drf.get())); + EXPECT_FALSE(drf->isEquivalentTo(unrelated_datum.get())); + EXPECT_FALSE(unrelated_datum->isEquivalentTo( + drf.get(), IComparable::Criterion::EQUIVALENT)); + EXPECT_FALSE(drf->isEquivalentTo(unrelated_datum.get(), + IComparable::Criterion::EQUIVALENT)); } // --------------------------------------------------------------------------- |
