From 0ba9d249136ec7adf6e3a44c8148701818d0e63e Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Mon, 3 Dec 2018 18:13:05 +0100 Subject: projinfo: add a --area option (refs #1188) --- test/cli/testprojinfo | 25 +++++++++++++++++++++++++ test/cli/testprojinfo_out.dist | 29 +++++++++++++++++++++++++++++ test/unit/test_factory.cpp | 22 ++++++++++++++++++++++ 3 files changed, 76 insertions(+) (limited to 'test') diff --git a/test/cli/testprojinfo b/test/cli/testprojinfo index ad62d1da..90829fdd 100755 --- a/test/cli/testprojinfo +++ b/test/cli/testprojinfo @@ -49,6 +49,31 @@ echo "Testing projinfo -s NAD27 -t NAD83 --grid-check none --spatial-test inters $EXE -s NAD27 -t NAD83 --grid-check none --spatial-test intersects >>${OUT} echo "" >>${OUT} +echo "Testing projinfo -s EPSG:4230 -t EPSG:4258 --bbox 8,54.51,15.24,57.8 --summary" >> ${OUT} +$EXE -s EPSG:4230 -t EPSG:4258 --bbox 8,54.51,15.24,57.8 --summary >>${OUT} +echo "" >>${OUT} + +echo "Testing projinfo -s EPSG:4230 -t EPSG:4258 --area EPSG:3237 --summary" >> ${OUT} +$EXE -s EPSG:4230 -t EPSG:4258 --area EPSG:3237 --summary >>${OUT} +echo "" >>${OUT} + +echo "Testing projinfo -s EPSG:4230 -t EPSG:4258 --area 'Denmark - onshore' --summary" >> ${OUT} +$EXE -s EPSG:4230 -t EPSG:4258 --area 'Denmark - onshore' --summary >>${OUT} +echo "" >>${OUT} + +# several match +echo "Testing projinfo -s EPSG:4230 -t EPSG:4258 --area 'Denmark -' --summary" >> ${OUT} +$EXE -s EPSG:4230 -t EPSG:4258 --area 'Denmark -' --summary >>${OUT} 2>&1 +echo "" >>${OUT} + +echo "Testing projinfo -s EPSG:4230 -t EPSG:4258 --area no_match --summary" >> ${OUT} +$EXE -s EPSG:4230 -t EPSG:4258 --area no_match --summary >>${OUT} 2>&1 +echo "" >>${OUT} + +echo "Testing projinfo -s EPSG:4230 -t EPSG:4258 --area WRONG:CODE --summary" >> ${OUT} +$EXE -s EPSG:4230 -t EPSG:4258 --area WRONG:CODE --summary >>${OUT} 2>&1 +echo "" >>${OUT} + # do 'diff' with distribution results echo "diff ${OUT} with testprojinfo_out.dist" diff -u ${OUT} ${TEST_CLI_DIR}/testprojinfo_out.dist diff --git a/test/cli/testprojinfo_out.dist b/test/cli/testprojinfo_out.dist index 7cb4891b..f3d4854a 100644 --- a/test/cli/testprojinfo_out.dist +++ b/test/cli/testprojinfo_out.dist @@ -496,3 +496,32 @@ COORDINATEOPERATION["NAD27 to NAD83 (6)", BBOX[44.99,-79.85,62.62,-57.1], ID["EPSG",1573]] +Testing projinfo -s EPSG:4230 -t EPSG:4258 --bbox 8,54.51,15.24,57.8 --summary +Candidate operations found: 1 +EPSG:1626, ED50 to ETRS89 (4), 1.0 m, Denmark - onshore + +Testing projinfo -s EPSG:4230 -t EPSG:4258 --area EPSG:3237 --summary +Candidate operations found: 1 +EPSG:1626, ED50 to ETRS89 (4), 1.0 m, Denmark - onshore + +Testing projinfo -s EPSG:4230 -t EPSG:4258 --area 'Denmark - onshore' --summary +Candidate operations found: 1 +EPSG:1626, ED50 to ETRS89 (4), 1.0 m, Denmark - onshore + +Testing projinfo -s EPSG:4230 -t EPSG:4258 --area 'Denmark -' --summary +Several candidates area of use matching provided name : + EPSG:2531 : Denmark - onshore Jutland and Funen + EPSG:2532 : Denmark - onshore Zealand and Lolland + EPSG:2533 : Denmark - onshore Bornholm + EPSG:3237 : Denmark - onshore + EPSG:3471 : Denmark - onshore west of 12°E + EPSG:3472 : Denmark - onshore east of 12°E + EPSG:3631 : Denmark - onshore Jutland west of 10°E + EPSG:3632 : Denmark - onshore Jutland east of 9°E and Funen + +Testing projinfo -s EPSG:4230 -t EPSG:4258 --area no_match --summary +No area of use matching provided name + +Testing projinfo -s EPSG:4230 -t EPSG:4258 --area WRONG:CODE --summary +Area of use retrieval failed: area not found + diff --git a/test/unit/test_factory.cpp b/test/unit/test_factory.cpp index 7cdb0b40..c30111ce 100644 --- a/test/unit/test_factory.cpp +++ b/test/unit/test_factory.cpp @@ -2746,4 +2746,26 @@ TEST(factory, getMetadata) { EXPECT_EQ(std::string(IGNF_VERSION), "3.0.2"); } +// --------------------------------------------------------------------------- + +TEST(factory, listAreaOfUseFromName) { + auto ctxt = DatabaseContext::create(); + auto factory = AuthorityFactory::create(ctxt, std::string()); + auto factoryEPSG = AuthorityFactory::create(ctxt, "EPSG"); + { + auto res = factory->listAreaOfUseFromName("Denmark - onshore", false); + ASSERT_EQ(res.size(), 1); + EXPECT_EQ(res.front().first, "EPSG"); + EXPECT_EQ(res.front().second, "3237"); + } + { + auto res = factory->listAreaOfUseFromName("Denmark", true); + EXPECT_GT(res.size(), 1U); + } + { + auto res = factory->listAreaOfUseFromName("no where land", false); + ASSERT_EQ(res.size(), 0); + } +} + } // namespace -- cgit v1.2.3