diff options
Diffstat (limited to 'test/unit/test_factory.cpp')
| -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"), |
