aboutsummaryrefslogtreecommitdiff
path: root/test/unit/test_operationfactory.cpp
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2021-07-20 11:16:10 +0200
committerGitHub <noreply@github.com>2021-07-20 11:16:10 +0200
commitef6094573ee71d12dd76ee532dd00e96ba10be8d (patch)
tree714495c294b02ae95879b798300afec46996fd16 /test/unit/test_operationfactory.cpp
parent88147888b8cbfcd7bcba6991de857029ac095dc6 (diff)
parentbe83b7dd836a94ce7cba999716f8bff1c2effac0 (diff)
downloadPROJ-ef6094573ee71d12dd76ee532dd00e96ba10be8d.tar.gz
PROJ-ef6094573ee71d12dd76ee532dd00e96ba10be8d.zip
Merge pull request #2782 from rouault/fix_crs_extent_use_none
createOperations(): fix SourceTargetCRSExtentUse::NONE mode
Diffstat (limited to 'test/unit/test_operationfactory.cpp')
-rw-r--r--test/unit/test_operationfactory.cpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/test/unit/test_operationfactory.cpp b/test/unit/test_operationfactory.cpp
index 8c79e308..47c6636c 100644
--- a/test/unit/test_operationfactory.cpp
+++ b/test/unit/test_operationfactory.cpp
@@ -2123,6 +2123,47 @@ TEST(
// ---------------------------------------------------------------------------
+TEST(operation, projCRS_to_geogCRS_crs_extent_use_none) {
+ auto authFactory =
+ AuthorityFactory::create(DatabaseContext::create(), "EPSG");
+ {
+ auto ctxt =
+ CoordinateOperationContext::create(authFactory, nullptr, 0.0);
+ auto list = CoordinateOperationFactory::create()->createOperations(
+ authFactory->createCoordinateReferenceSystem("23031"), // ED50 UTM31
+ authFactory->createCoordinateReferenceSystem("4326"), ctxt);
+ bool found_EPSG_15964 = false;
+ for (const auto &op : list) {
+ if (op->nameStr().find("ED50 to WGS 84 (42)") !=
+ std::string::npos) {
+ found_EPSG_15964 = true;
+ }
+ }
+ // not expected since doesn't intersect EPSG:23031 area of use
+ EXPECT_FALSE(found_EPSG_15964);
+ }
+ {
+ auto ctxt =
+ CoordinateOperationContext::create(authFactory, nullptr, 0.0);
+ // Ignore source and target CRS extent
+ ctxt->setSourceAndTargetCRSExtentUse(
+ CoordinateOperationContext::SourceTargetCRSExtentUse::NONE);
+ auto list = CoordinateOperationFactory::create()->createOperations(
+ authFactory->createCoordinateReferenceSystem("23031"), // ED50 UTM31
+ authFactory->createCoordinateReferenceSystem("4326"), ctxt);
+ bool found_EPSG_15964 = false;
+ for (const auto &op : list) {
+ if (op->nameStr().find("ED50 to WGS 84 (42)") !=
+ std::string::npos) {
+ found_EPSG_15964 = true;
+ }
+ }
+ EXPECT_TRUE(found_EPSG_15964);
+ }
+}
+
+// ---------------------------------------------------------------------------
+
TEST(operation, projCRS_to_projCRS_north_pole_inverted_axis) {
auto authFactory =