diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2020-10-06 22:15:31 +0200 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2020-10-08 17:31:56 +0200 |
| commit | b5369cc79eccc625419d37bb97a5361731fd8f0f (patch) | |
| tree | 73bea46ce8b3daf40e65b538f4bc15149ac99756 /test/unit | |
| parent | fece8a6c6e2e5eebeac6f9b4fc47ca830f2e3a3a (diff) | |
| download | PROJ-b5369cc79eccc625419d37bb97a5361731fd8f0f.tar.gz PROJ-b5369cc79eccc625419d37bb97a5361731fd8f0f.zip | |
Add a AuthorityFactory::createDatumEnsemble() method, and make it inherit from ObjectUsage
as mandated by ISO 19111:2019
Diffstat (limited to 'test/unit')
| -rw-r--r-- | test/unit/test_factory.cpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/test/unit/test_factory.cpp b/test/unit/test_factory.cpp index 1d070a43..6b87fba6 100644 --- a/test/unit/test_factory.cpp +++ b/test/unit/test_factory.cpp @@ -316,6 +316,48 @@ TEST(factory, AuthorityFactory_createDatum) { // --------------------------------------------------------------------------- +TEST(factory, AuthorityFactory_createDatumEnsembleGeodetic) { + auto factory = AuthorityFactory::create(DatabaseContext::create(), "EPSG"); + EXPECT_THROW(factory->createDatumEnsemble("-1"), + NoSuchAuthorityCodeException); + EXPECT_THROW(factory->createDatumEnsemble("6326", "vertical_datum"), + NoSuchAuthorityCodeException); + auto ensemble = factory->createDatumEnsemble("6326"); + EXPECT_EQ(ensemble->nameStr(), "World Geodetic System 1984 ensemble"); + ASSERT_EQ(ensemble->identifiers().size(), 1U); + EXPECT_EQ(ensemble->identifiers()[0]->code(), "6326"); + EXPECT_EQ(*(ensemble->identifiers()[0]->codeSpace()), "EPSG"); + EXPECT_EQ(ensemble->datums().size(), 6U); + EXPECT_EQ(ensemble->positionalAccuracy()->value(), "2.0"); + ASSERT_TRUE(!ensemble->domains().empty()); + auto domain = ensemble->domains()[0]; + auto extent = domain->domainOfValidity(); + ASSERT_TRUE(extent != nullptr); + EXPECT_TRUE(extent->isEquivalentTo(factory->createExtent("1262").get())); +} + +// --------------------------------------------------------------------------- + +TEST(factory, AuthorityFactory_createDatumEnsembleVertical) { + auto factory = AuthorityFactory::create(DatabaseContext::create(), "EPSG"); + EXPECT_THROW(factory->createDatumEnsemble("1288", "geodetic_datum"), + NoSuchAuthorityCodeException); + auto ensemble = factory->createDatumEnsemble("1288"); + EXPECT_EQ(ensemble->nameStr(), "British Isles height ensemble"); + ASSERT_EQ(ensemble->identifiers().size(), 1U); + EXPECT_EQ(ensemble->identifiers()[0]->code(), "1288"); + EXPECT_EQ(*(ensemble->identifiers()[0]->codeSpace()), "EPSG"); + EXPECT_EQ(ensemble->datums().size(), 9U); + EXPECT_EQ(ensemble->positionalAccuracy()->value(), "0.4"); + ASSERT_TRUE(!ensemble->domains().empty()); + auto domain = ensemble->domains()[0]; + auto extent = domain->domainOfValidity(); + ASSERT_TRUE(extent != nullptr); + EXPECT_TRUE(extent->isEquivalentTo(factory->createExtent("4606").get())); +} + +// --------------------------------------------------------------------------- + TEST(factory, AuthorityFactory_createCoordinateSystem_ellipsoidal_2_axis) { auto factory = AuthorityFactory::create(DatabaseContext::create(), "EPSG"); EXPECT_THROW(factory->createCoordinateSystem("-1"), |
