aboutsummaryrefslogtreecommitdiff
path: root/test/unit/test_factory.cpp
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2020-10-06 23:48:46 +0200
committerEven Rouault <even.rouault@spatialys.com>2020-10-08 17:31:56 +0200
commit9dc3bf503b0455526a4d180930f8414621ea6187 (patch)
tree853db7b562f76ba86a17ef627f7b7edacab24146 /test/unit/test_factory.cpp
parentb5369cc79eccc625419d37bb97a5361731fd8f0f (diff)
downloadPROJ-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/unit/test_factory.cpp')
-rw-r--r--test/unit/test_factory.cpp34
1 files changed, 34 insertions, 0 deletions
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()));
+ }
}
// ---------------------------------------------------------------------------