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.cpp53
1 files changed, 33 insertions, 20 deletions
diff --git a/test/unit/test_factory.cpp b/test/unit/test_factory.cpp
index d3976688..9ca844b1 100644
--- a/test/unit/test_factory.cpp
+++ b/test/unit/test_factory.cpp
@@ -1511,32 +1511,35 @@ class FactoryWithTmpDatabase : public ::testing::Test {
auto factoryOTHER = AuthorityFactory::create(
DatabaseContext::create(m_ctxt), "OTHER");
auto res = factoryOTHER->createFromCRSCodesWithIntermediates(
- "NS_SOURCE", "SOURCE", "NS_TARGET", "TARGET", false, false, {});
+ "NS_SOURCE", "SOURCE", "NS_TARGET", "TARGET", false, false,
+ false, {});
EXPECT_EQ(res.size(), 1);
EXPECT_TRUE(res.empty() ||
nn_dynamic_pointer_cast<ConcatenatedOperation>(res[0]));
res = factoryOTHER->createFromCRSCodesWithIntermediates(
"NS_SOURCE", "SOURCE", "NS_TARGET", "TARGET", false, false,
- {std::make_pair(std::string("NS_PIVOT"),
- std::string("PIVOT"))});
+ false, {std::make_pair(std::string("NS_PIVOT"),
+ std::string("PIVOT"))});
EXPECT_EQ(res.size(), 1);
EXPECT_TRUE(res.empty() ||
nn_dynamic_pointer_cast<ConcatenatedOperation>(res[0]));
res = factoryOTHER->createFromCRSCodesWithIntermediates(
"NS_SOURCE", "SOURCE", "NS_TARGET", "TARGET", false, false,
- {std::make_pair(std::string("NS_PIVOT"),
- std::string("NOT_EXISTING"))});
+ false, {std::make_pair(std::string("NS_PIVOT"),
+ std::string("NOT_EXISTING"))});
EXPECT_EQ(res.size(), 0);
res = factoryOTHER->createFromCRSCodesWithIntermediates(
"NS_SOURCE", "SOURCE", "NS_TARGET", "TARGET", false, false,
+ false,
{std::make_pair(std::string("BAD_NS"), std::string("PIVOT"))});
EXPECT_EQ(res.size(), 0);
res = factoryOTHER->createFromCRSCodesWithIntermediates(
- "NS_TARGET", "TARGET", "NS_SOURCE", "SOURCE", false, false, {});
+ "NS_TARGET", "TARGET", "NS_SOURCE", "SOURCE", false, false,
+ false, {});
EXPECT_EQ(res.size(), 1);
EXPECT_TRUE(res.empty() ||
nn_dynamic_pointer_cast<ConcatenatedOperation>(res[0]));
@@ -1545,7 +1548,8 @@ class FactoryWithTmpDatabase : public ::testing::Test {
auto factory = AuthorityFactory::create(
DatabaseContext::create(m_ctxt), std::string());
auto res = factory->createFromCRSCodesWithIntermediates(
- "NS_SOURCE", "SOURCE", "NS_TARGET", "TARGET", false, false, {});
+ "NS_SOURCE", "SOURCE", "NS_TARGET", "TARGET", false, false,
+ false, {});
EXPECT_EQ(res.size(), 1);
EXPECT_TRUE(res.empty() ||
nn_dynamic_pointer_cast<ConcatenatedOperation>(res[0]));
@@ -1720,6 +1724,15 @@ TEST(factory, AuthorityFactory_createFromCoordinateReferenceSystemCodes) {
EXPECT_EQ(list[1]->getEPSGCode(), 15993); // Romania - 10m
EXPECT_EQ(list[2]->getEPSGCode(), 1644); // Poland - 1m
}
+ {
+ // Test removal of superseded transform
+ auto list = factory->createFromCoordinateReferenceSystemCodes(
+ "EPSG", "4179", "EPSG", "4258", false, false, true);
+ ASSERT_EQ(list.size(), 2);
+ // Romania has a larger area than Poland (given our approx formula)
+ EXPECT_EQ(list[0]->getEPSGCode(), 15994); // Romania - 3m
+ EXPECT_EQ(list[1]->getEPSGCode(), 1644); // Poland - 1m
+ }
}
// ---------------------------------------------------------------------------
@@ -1732,12 +1745,12 @@ TEST(
{
auto res = factory->createFromCoordinateReferenceSystemCodes(
- "EPSG", "4326", "EPSG", "32631", false, false);
+ "EPSG", "4326", "EPSG", "32631", false, false, false);
ASSERT_EQ(res.size(), 1);
}
{
auto res = factory->createFromCoordinateReferenceSystemCodes(
- "EPSG", "4209", "EPSG", "4326", false, false);
+ "EPSG", "4209", "EPSG", "4326", false, false, false);
EXPECT_TRUE(!res.empty());
for (const auto &conv : res) {
EXPECT_TRUE(conv->sourceCRS()->getEPSGCode() == 4209);
@@ -1770,7 +1783,7 @@ TEST_F(FactoryWithTmpDatabase,
DatabaseContext::create(m_ctxt), std::string());
{
auto res = factoryGeneral->createFromCoordinateReferenceSystemCodes(
- "OTHER", "OTHER_4326", "OTHER", "OTHER_32631", false, false);
+ "OTHER", "OTHER_4326", "OTHER", "OTHER_32631", false, false, false);
ASSERT_EQ(res.size(), 1);
}
@@ -1778,7 +1791,7 @@ TEST_F(FactoryWithTmpDatabase,
AuthorityFactory::create(DatabaseContext::create(m_ctxt), "EPSG");
{
auto res = factoryEPSG->createFromCoordinateReferenceSystemCodes(
- "OTHER", "OTHER_4326", "OTHER", "OTHER_32631", false, false);
+ "OTHER", "OTHER_4326", "OTHER", "OTHER_32631", false, false, false);
ASSERT_EQ(res.size(), 1);
}
@@ -1800,17 +1813,17 @@ TEST_F(FactoryWithTmpDatabase,
<< last_error();
{
auto res = factoryGeneral->createFromCoordinateReferenceSystemCodes(
- "EPSG", "4326", "OTHER", "OTHER_4326", false, false);
+ "EPSG", "4326", "OTHER", "OTHER_4326", false, false, false);
ASSERT_EQ(res.size(), 1);
}
{
auto res = factoryEPSG->createFromCoordinateReferenceSystemCodes(
- "EPSG", "4326", "OTHER", "OTHER_4326", false, false);
+ "EPSG", "4326", "OTHER", "OTHER_4326", false, false, false);
ASSERT_EQ(res.size(), 0);
}
{
auto res = factoryOTHER->createFromCoordinateReferenceSystemCodes(
- "EPSG", "4326", "OTHER", "OTHER_4326", false, false);
+ "EPSG", "4326", "OTHER", "OTHER_4326", false, false, false);
ASSERT_EQ(res.size(), 1);
}
}
@@ -1861,7 +1874,7 @@ TEST_F(FactoryWithTmpDatabase,
auto factoryOTHER =
AuthorityFactory::create(DatabaseContext::create(m_ctxt), "OTHER");
auto res = factoryOTHER->createFromCoordinateReferenceSystemCodes(
- "EPSG", "4326", "EPSG", "4326", false, false);
+ "EPSG", "4326", "EPSG", "4326", false, false, false);
ASSERT_EQ(res.size(), 3);
EXPECT_EQ(*(res[0]->name()->description()), "TRANSFORMATION_1M");
EXPECT_EQ(*(res[1]->name()->description()), "TRANSFORMATION_10M");
@@ -1880,7 +1893,7 @@ TEST_F(
auto factory = AuthorityFactory::create(DatabaseContext::create(m_ctxt),
std::string());
auto res = factory->createFromCRSCodesWithIntermediates(
- "EPSG", "4326", "EPSG", "4326", false, false, {});
+ "EPSG", "4326", "EPSG", "4326", false, false, false, {});
EXPECT_EQ(res.size(), 0);
}
@@ -1964,7 +1977,7 @@ TEST_F(FactoryWithTmpDatabase, AuthorityFactory_proj_based_transformation) {
auto factoryOTHER =
AuthorityFactory::create(DatabaseContext::create(m_ctxt), "OTHER");
auto res = factoryOTHER->createFromCoordinateReferenceSystemCodes(
- "EPSG", "4326", "EPSG", "4326", false, false);
+ "EPSG", "4326", "EPSG", "4326", false, false, false);
ASSERT_EQ(res.size(), 1);
EXPECT_EQ(res[0]->nameStr(), "My PROJ string based op");
EXPECT_EQ(res[0]->exportToPROJString(PROJStringFormatter::create().get()),
@@ -2025,7 +2038,7 @@ TEST_F(FactoryWithTmpDatabase, AuthorityFactory_wkt_based_transformation) {
auto factoryOTHER =
AuthorityFactory::create(DatabaseContext::create(m_ctxt), "OTHER");
auto res = factoryOTHER->createFromCoordinateReferenceSystemCodes(
- "EPSG", "4326", "EPSG", "4326", false, false);
+ "EPSG", "4326", "EPSG", "4326", false, false, false);
ASSERT_EQ(res.size(), 1);
EXPECT_EQ(res[0]->nameStr(), "My WKT string based op");
EXPECT_EQ(res[0]->exportToPROJString(PROJStringFormatter::create().get()),
@@ -2059,7 +2072,7 @@ TEST_F(FactoryWithTmpDatabase,
auto factoryOTHER =
AuthorityFactory::create(DatabaseContext::create(m_ctxt), "OTHER");
EXPECT_THROW(factoryOTHER->createFromCoordinateReferenceSystemCodes(
- "EPSG", "4326", "EPSG", "4326", false, false),
+ "EPSG", "4326", "EPSG", "4326", false, false, false),
FactoryException);
}
@@ -2086,7 +2099,7 @@ TEST_F(FactoryWithTmpDatabase,
auto factoryOTHER =
AuthorityFactory::create(DatabaseContext::create(m_ctxt), "OTHER");
EXPECT_THROW(factoryOTHER->createFromCoordinateReferenceSystemCodes(
- "EPSG", "4326", "EPSG", "4326", false, false),
+ "EPSG", "4326", "EPSG", "4326", false, false, false),
FactoryException);
}