aboutsummaryrefslogtreecommitdiff
path: root/test/unit/test_factory.cpp
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2020-10-11 20:01:29 +0200
committerEven Rouault <even.rouault@spatialys.com>2020-10-11 20:01:29 +0200
commitd1a0d95da549f7d32bcd8be408afe1fca62a6fb2 (patch)
treeaaaffe1812578ec5479c5fc413d47793cd1d5bcb /test/unit/test_factory.cpp
parentad80dc88a70032e1d96812b574b2d4d22e223394 (diff)
downloadPROJ-d1a0d95da549f7d32bcd8be408afe1fca62a6fb2.tar.gz
PROJ-d1a0d95da549f7d32bcd8be408afe1fca62a6fb2.zip
Database query: add AuthorityFactory::ObjectType::DYNAMIC_GEODETIC_REFERENCE_FRAME and DYNAMIC_VERTICAL_REFERENCE_FRAME, and make corresponding C API work
Diffstat (limited to 'test/unit/test_factory.cpp')
-rw-r--r--test/unit/test_factory.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/test/unit/test_factory.cpp b/test/unit/test_factory.cpp
index 366e3d9b..2a9d2bd2 100644
--- a/test/unit/test_factory.cpp
+++ b/test/unit/test_factory.cpp
@@ -1337,11 +1337,29 @@ TEST(factory, AuthorityFactory_getAuthorityCodes) {
ASSERT_TRUE(!setGeodeticDatum.empty());
factory->createGeodeticDatum(*(setGeodeticDatum.begin()));
+ auto setDynamicGeodeticDatum = factory->getAuthorityCodes(
+ AuthorityFactory::ObjectType::DYNAMIC_GEODETIC_REFERENCE_FRAME);
+ ASSERT_TRUE(!setDynamicGeodeticDatum.empty());
+ auto dgrf =
+ factory->createGeodeticDatum(*(setDynamicGeodeticDatum.begin()));
+ EXPECT_TRUE(dynamic_cast<DynamicGeodeticReferenceFrame *>(dgrf.get()) !=
+ nullptr);
+ EXPECT_LT(setDynamicGeodeticDatum.size(), setGeodeticDatum.size());
+
auto setVerticalDatum = factory->getAuthorityCodes(
AuthorityFactory::ObjectType::VERTICAL_REFERENCE_FRAME);
ASSERT_TRUE(!setVerticalDatum.empty());
factory->createVerticalDatum(*(setVerticalDatum.begin()));
+ auto setDynamicVerticalDatum = factory->getAuthorityCodes(
+ AuthorityFactory::ObjectType::DYNAMIC_VERTICAL_REFERENCE_FRAME);
+ ASSERT_TRUE(!setDynamicVerticalDatum.empty());
+ auto dvrf =
+ factory->createVerticalDatum(*(setDynamicVerticalDatum.begin()));
+ EXPECT_TRUE(dynamic_cast<DynamicVerticalReferenceFrame *>(dvrf.get()) !=
+ nullptr);
+ EXPECT_LT(setDynamicVerticalDatum.size(), setVerticalDatum.size());
+
std::set<std::string> setMerged;
for (const auto &v : setGeodeticDatum) {
setMerged.insert(v);
@@ -3128,12 +3146,34 @@ TEST(factory, createObjectsFromName) {
.size(),
1U);
+ // Dynamic Geodetic datum
+ EXPECT_EQ(factoryEPSG
+ ->createObjectsFromName(
+ "International Terrestrial Reference Frame 2008",
+ {AuthorityFactory::ObjectType::
+ DYNAMIC_GEODETIC_REFERENCE_FRAME},
+ false, 2)
+ .size(),
+ 1U);
+
+ // Dynamic Vertical datum
+ EXPECT_EQ(
+ factoryEPSG
+ ->createObjectsFromName("Norway Normal Null 2000",
+ {AuthorityFactory::ObjectType::
+ DYNAMIC_VERTICAL_REFERENCE_FRAME},
+ false, 2)
+ .size(),
+ 1U);
+
const auto types = std::vector<AuthorityFactory::ObjectType>{
AuthorityFactory::ObjectType::PRIME_MERIDIAN,
AuthorityFactory::ObjectType::ELLIPSOID,
AuthorityFactory::ObjectType::DATUM,
AuthorityFactory::ObjectType::GEODETIC_REFERENCE_FRAME,
+ AuthorityFactory::ObjectType::DYNAMIC_GEODETIC_REFERENCE_FRAME,
AuthorityFactory::ObjectType::VERTICAL_REFERENCE_FRAME,
+ AuthorityFactory::ObjectType::DYNAMIC_VERTICAL_REFERENCE_FRAME,
AuthorityFactory::ObjectType::CRS,
AuthorityFactory::ObjectType::GEODETIC_CRS,
AuthorityFactory::ObjectType::GEOCENTRIC_CRS,