aboutsummaryrefslogtreecommitdiff
path: root/test/unit/test_factory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/unit/test_factory.cpp')
-rw-r--r--test/unit/test_factory.cpp38
1 files changed, 37 insertions, 1 deletions
diff --git a/test/unit/test_factory.cpp b/test/unit/test_factory.cpp
index 02033a8a..c10c4697 100644
--- a/test/unit/test_factory.cpp
+++ b/test/unit/test_factory.cpp
@@ -1261,7 +1261,7 @@ TEST(
auto operations = concatenated->operations();
ASSERT_EQ(operations.size(), 2U);
EXPECT_TRUE(operations[0]->isEquivalentTo(
- factory->createCoordinateOperation("7972", false).get()));
+ factory->createCoordinateOperation("7813", false).get()));
EXPECT_TRUE(operations[1]->isEquivalentTo(
factory->createCoordinateOperation("7969", false).get()));
}
@@ -1270,6 +1270,42 @@ TEST(
TEST(
factory,
+ AuthorityFactory_createCoordinateOperation_concatenated_operation_step_2_and_3_are_conversion) {
+ auto factory = AuthorityFactory::create(DatabaseContext::create(), "EPSG");
+ auto op = factory->createCoordinateOperation("7987", false);
+ auto concatenated = nn_dynamic_pointer_cast<ConcatenatedOperation>(op);
+ ASSERT_TRUE(concatenated != nullptr);
+ auto operations = concatenated->operations();
+ ASSERT_EQ(operations.size(), 3U);
+ EXPECT_TRUE(operations[0]->isEquivalentTo(
+ factory->createCoordinateOperation("7980", false).get()));
+ EXPECT_TRUE(operations[1]->isEquivalentTo(
+ factory->createCoordinateOperation("7812", false).get()));
+ EXPECT_TRUE(operations[2]->isEquivalentTo(
+ factory->createCoordinateOperation("7813", false).get()));
+
+ EXPECT_EQ(operations[1]->targetCRS()->nameStr(), "KOC WD depth");
+ EXPECT_EQ(operations[2]->sourceCRS()->nameStr(),
+ operations[1]->targetCRS()->nameStr());
+ EXPECT_EQ(
+ concatenated->exportToPROJString(PROJStringFormatter::create().get()),
+ "+proj=pipeline "
+ "+step +proj=geogoffset +dh=-4.74 "
+ "+step +proj=axisswap +order=1,2,-3 "
+ "+step +proj=unitconvert +z_in=m +z_out=ft");
+
+ EXPECT_EQ(concatenated->inverse()->exportToPROJString(
+ PROJStringFormatter::create().get()),
+ "+proj=pipeline "
+ "+step +proj=unitconvert +z_in=ft +z_out=m "
+ "+step +proj=axisswap +order=1,2,-3 "
+ "+step +proj=geogoffset +dh=4.74");
+}
+
+// ---------------------------------------------------------------------------
+
+TEST(
+ factory,
AuthorityFactory_createCoordinateOperation_concatenated_operation_epsg_9103) {
auto factory = AuthorityFactory::create(DatabaseContext::create(), "EPSG");
auto op = factory->createCoordinateOperation("9103", false);