diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2019-10-29 11:48:17 +0100 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2019-10-29 11:48:17 +0100 |
| commit | 805b187edd4c9246629e9aeb062118f8c2de2dfe (patch) | |
| tree | 16544587f5ea1341fa749f31c7ad97840677023b /test/unit/test_operation.cpp | |
| parent | 2366a528aa1bce3f9ccfea5940154dc7c6c947be (diff) | |
| download | PROJ-805b187edd4c9246629e9aeb062118f8c2de2dfe.tar.gz PROJ-805b187edd4c9246629e9aeb062118f8c2de2dfe.zip | |
Little tweaks in implicit 2D/3D geog conversions in compoundCRS to geogCRS transformations
Diffstat (limited to 'test/unit/test_operation.cpp')
| -rw-r--r-- | test/unit/test_operation.cpp | 36 |
1 files changed, 25 insertions, 11 deletions
diff --git a/test/unit/test_operation.cpp b/test/unit/test_operation.cpp index 739d8ec3..79541d88 100644 --- a/test/unit/test_operation.cpp +++ b/test/unit/test_operation.cpp @@ -7129,6 +7129,11 @@ TEST(operation, compoundCRS_to_geogCRS_2D_promote_to_3D_context) { auto authFactory = AuthorityFactory::create(DatabaseContext::create(), "EPSG"); auto ctxt = CoordinateOperationContext::create(authFactory, nullptr, 0.0); + ctxt->setSpatialCriterion( + CoordinateOperationContext::SpatialCriterion::PARTIAL_INTERSECTION); + ctxt->setGridAvailabilityUse( + CoordinateOperationContext::GridAvailabilityUse:: + IGNORE_GRID_AVAILABILITY); // NAD83 + NAVD88 height auto srcObj = createFromUserInput("EPSG:4269+5703", authFactory->databaseContext(), false); @@ -7136,17 +7141,26 @@ TEST(operation, compoundCRS_to_geogCRS_2D_promote_to_3D_context) { ASSERT_TRUE(src != nullptr); auto nnSrc = NN_NO_CHECK(src); auto dst = authFactory->createCoordinateReferenceSystem("4269"); // NAD83 - dst = dst->promoteTo3D(std::string(), authFactory->databaseContext()); - { - auto list = CoordinateOperationFactory::create()->createOperations( - nnSrc, dst, ctxt); - ASSERT_GE(list.size(), 8U); - } - { - auto list = CoordinateOperationFactory::create()->createOperations( - dst, nnSrc, ctxt); - ASSERT_GE(list.size(), 8U); - } + + auto listCompoundToGeog2D = + CoordinateOperationFactory::create()->createOperations(nnSrc, dst, + ctxt); + // The checked value is not that important, but in case this changes, + // likely due to a EPSG upgrade, worth checking + ASSERT_EQ(listCompoundToGeog2D.size(), 469U); + + auto listGeog2DToCompound = + CoordinateOperationFactory::create()->createOperations(dst, nnSrc, + ctxt); + ASSERT_EQ(listGeog2DToCompound.size(), listCompoundToGeog2D.size()); + + auto listCompoundToGeog3D = + CoordinateOperationFactory::create()->createOperations( + nnSrc, + dst->promoteTo3D(std::string(), authFactory->databaseContext()), + ctxt); + // It includes a trailing ballpart transformation + ASSERT_EQ(listCompoundToGeog3D.size(), listCompoundToGeog2D.size() + 1); } // --------------------------------------------------------------------------- |
