diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2020-10-06 23:48:46 +0200 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2020-10-08 17:31:56 +0200 |
| commit | 9dc3bf503b0455526a4d180930f8414621ea6187 (patch) | |
| tree | 853db7b562f76ba86a17ef627f7b7edacab24146 /test | |
| parent | b5369cc79eccc625419d37bb97a5361731fd8f0f (diff) | |
| download | PROJ-9dc3bf503b0455526a4d180930f8414621ea6187.tar.gz PROJ-9dc3bf503b0455526a4d180930f8414621ea6187.zip | |
Add DatumEnsemble::asDatum() and use it in exportToWkt()
to allow exporting DatumEnsemble to WKT < 2019.
Diffstat (limited to 'test')
| -rw-r--r-- | test/unit/test_datum.cpp | 11 | ||||
| -rw-r--r-- | test/unit/test_factory.cpp | 34 |
2 files changed, 43 insertions, 2 deletions
diff --git a/test/unit/test_datum.cpp b/test/unit/test_datum.cpp index adf0ae4b..26098d5c 100644 --- a/test/unit/test_datum.cpp +++ b/test/unit/test_datum.cpp @@ -409,8 +409,7 @@ TEST(datum, datum_ensemble) { PositionalAccuracy::create("100")); EXPECT_EQ(ensemble->datums().size(), 2U); EXPECT_EQ(ensemble->positionalAccuracy()->value(), "100"); - EXPECT_THROW(ensemble->exportToWKT(WKTFormatter::create().get()), - FormattingException); + EXPECT_EQ( ensemble->exportToWKT( WKTFormatter::create(WKTFormatter::Convention::WKT2_2019).get()), @@ -422,6 +421,14 @@ TEST(datum, datum_ensemble) { " LENGTHUNIT[\"metre\",1],\n" " ID[\"EPSG\",7030]],\n" " ENSEMBLEACCURACY[100]]"); + + EXPECT_EQ( + ensemble->exportToWKT( + WKTFormatter::create(WKTFormatter::Convention::WKT2_2015).get()), + "DATUM[\"test\",\n" + " ELLIPSOID[\"WGS 84\",6378137,298.257223563,\n" + " LENGTHUNIT[\"metre\",1],\n" + " ID[\"EPSG\",7030]]]"); } // --------------------------------------------------------------------------- diff --git a/test/unit/test_factory.cpp b/test/unit/test_factory.cpp index 6b87fba6..b17a3077 100644 --- a/test/unit/test_factory.cpp +++ b/test/unit/test_factory.cpp @@ -334,6 +334,24 @@ TEST(factory, AuthorityFactory_createDatumEnsembleGeodetic) { auto extent = domain->domainOfValidity(); ASSERT_TRUE(extent != nullptr); EXPECT_TRUE(extent->isEquivalentTo(factory->createExtent("1262").get())); + + { + // Without using db + auto datum = ensemble->asDatum(nullptr); + EXPECT_EQ(datum->nameStr(), "World Geodetic System 1984"); + auto grf = dynamic_cast<GeodeticReferenceFrame *>(datum.get()); + ASSERT_TRUE(grf != nullptr); + EXPECT_TRUE(grf->isEquivalentTo(factory->createDatum("6326").get())); + } + + { + // Using db + auto datum = ensemble->asDatum(DatabaseContext::create()); + EXPECT_EQ(datum->nameStr(), "World Geodetic System 1984"); + auto grf = dynamic_cast<GeodeticReferenceFrame *>(datum.get()); + ASSERT_TRUE(grf != nullptr); + EXPECT_TRUE(grf->isEquivalentTo(factory->createDatum("6326").get())); + } } // --------------------------------------------------------------------------- @@ -354,6 +372,22 @@ TEST(factory, AuthorityFactory_createDatumEnsembleVertical) { auto extent = domain->domainOfValidity(); ASSERT_TRUE(extent != nullptr); EXPECT_TRUE(extent->isEquivalentTo(factory->createExtent("4606").get())); + + { + // Without using db + auto datum = ensemble->asDatum(nullptr); + auto vrf = dynamic_cast<VerticalReferenceFrame *>(datum.get()); + ASSERT_TRUE(vrf != nullptr); + EXPECT_TRUE(vrf->isEquivalentTo(factory->createDatum("1288").get())); + } + + { + // Using db + auto datum = ensemble->asDatum(DatabaseContext::create()); + auto vrf = dynamic_cast<VerticalReferenceFrame *>(datum.get()); + ASSERT_TRUE(vrf != nullptr); + EXPECT_TRUE(vrf->isEquivalentTo(factory->createDatum("1288").get())); + } } // --------------------------------------------------------------------------- |
