diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2020-12-16 21:02:37 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-12-16 21:02:37 +0100 |
| commit | 7766b1aad7328b94b7ecc9afe0ad7e874c989ad3 (patch) | |
| tree | ed39359433f8004f03d0e4bef02b0cc41e62f0d5 /test | |
| parent | 1a84a71349c31740b4a525971cf56c899dda858e (diff) | |
| parent | da066800e59dcd5c3bf5e88ccca1bf1762de74dc (diff) | |
| download | PROJ-7766b1aad7328b94b7ecc9afe0ad7e874c989ad3.tar.gz PROJ-7766b1aad7328b94b7ecc9afe0ad7e874c989ad3.zip | |
Merge pull request #2488 from rouault/crs_to_crs_improved_filtering
Improved coordinate operation filtering
Diffstat (limited to 'test')
| -rwxr-xr-x | test/cli/testprojinfo | 4 | ||||
| -rw-r--r-- | test/cli/testprojinfo_out.dist | 3 | ||||
| -rwxr-xr-x | test/cli/testvarious | 12 | ||||
| -rw-r--r-- | test/cli/tv_out.dist | 4 | ||||
| -rw-r--r-- | test/unit/test_c_api.cpp | 58 |
5 files changed, 81 insertions, 0 deletions
diff --git a/test/cli/testprojinfo b/test/cli/testprojinfo index c31cfef0..ee1b27f5 100755 --- a/test/cli/testprojinfo +++ b/test/cli/testprojinfo @@ -213,6 +213,10 @@ fi rm testprojinfo_out_remotedata.txt unset PROJ_NETWORK +echo 'Testing --accuracy 0.05 -s EPSG:4326 -t EPSG:4258' >> ${OUT} +$EXE --accuracy 0.05 -s EPSG:4326 -t EPSG:4258 >>${OUT} 2>&1 +echo "" >>${OUT} + ###################### # NZGD2000 -> ITRFxx # ###################### diff --git a/test/cli/testprojinfo_out.dist b/test/cli/testprojinfo_out.dist index 8e8ef294..829c914c 100644 --- a/test/cli/testprojinfo_out.dist +++ b/test/cli/testprojinfo_out.dist @@ -1384,6 +1384,9 @@ DATUM["World Geodetic System 1984", LENGTHUNIT["metre",1]], ID["EPSG",6326]] +Testing --accuracy 0.05 -s EPSG:4326 -t EPSG:4258 +Candidate operations found: 0 + Testing -s NZGD2000 -t ITRF96 -o PROJ -q +proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=rad diff --git a/test/cli/testvarious b/test/cli/testvarious index 82be4992..a121393c 100755 --- a/test/cli/testvarious +++ b/test/cli/testvarious @@ -1021,6 +1021,18 @@ $EXE --authority EPSG -E +proj=latlong +datum=WGS84 +no_defs +to +init=epsg:6342 -105 40 EOF +echo "##############################################################" >> ${OUT} +echo "Test effect of --accuracy" >> ${OUT} +$EXE -E --accuracy 0.05 EPSG:4326 EPSG:4258 >> ${OUT} <<EOF +49 2 +EOF + +echo "##############################################################" >> ${OUT} +echo "Test effect of --no-ballpark" >> ${OUT} +$EXE -E --no-ballpark EPSG:4267 EPSG:4258 >> ${OUT} <<EOF +49 2 +EOF + # Done! # do 'diff' with distribution results diff --git a/test/cli/tv_out.dist b/test/cli/tv_out.dist index fe1aa452..59129d99 100644 --- a/test/cli/tv_out.dist +++ b/test/cli/tv_out.dist @@ -492,3 +492,7 @@ The first result should use the 'WGS_1984_(ITRF08)_To_NAD_1983_2011' (ESRI:10836 and the second one a no-op -105 40 500000.86 4427756.50 0.00 -105 40 500000.00 4427757.22 0.00 +############################################################## +Test effect of --accuracy +############################################################## +Test effect of --no-ballpark diff --git a/test/unit/test_c_api.cpp b/test/unit/test_c_api.cpp index c417371d..e54c6fa7 100644 --- a/test/unit/test_c_api.cpp +++ b/test/unit/test_c_api.cpp @@ -4196,6 +4196,64 @@ TEST_F(CApi, proj_create_crs_to_crs_from_pj) { // --------------------------------------------------------------------------- +TEST_F(CApi, proj_create_crs_to_crs_from_pj_accuracy_filter) { + + auto src = proj_create(m_ctxt, "EPSG:4326"); // WGS 84 + ObjectKeeper keeper_src(src); + ASSERT_NE(src, nullptr); + + auto dst = proj_create(m_ctxt, "EPSG:4258"); // ETRS89 + ObjectKeeper keeper_dst(dst); + ASSERT_NE(dst, nullptr); + + // No options + { + auto P = + proj_create_crs_to_crs_from_pj(m_ctxt, src, dst, nullptr, nullptr); + ObjectKeeper keeper_P(P); + ASSERT_NE(P, nullptr); + } + + { + const char *const options[] = {"ACCURACY=0.05", nullptr}; + auto P = + proj_create_crs_to_crs_from_pj(m_ctxt, src, dst, nullptr, options); + ObjectKeeper keeper_P(P); + ASSERT_EQ(P, nullptr); + } +} + +// --------------------------------------------------------------------------- + +TEST_F(CApi, proj_create_crs_to_crs_from_pj_ballpark_filter) { + + auto src = proj_create(m_ctxt, "EPSG:4267"); // NAD 27 + ObjectKeeper keeper_src(src); + ASSERT_NE(src, nullptr); + + auto dst = proj_create(m_ctxt, "EPSG:4258"); // ETRS89 + ObjectKeeper keeper_dst(dst); + ASSERT_NE(dst, nullptr); + + // No options + { + auto P = + proj_create_crs_to_crs_from_pj(m_ctxt, src, dst, nullptr, nullptr); + ObjectKeeper keeper_P(P); + ASSERT_NE(P, nullptr); + } + + { + const char *const options[] = {"ALLOW_BALLPARK=NO", nullptr}; + auto P = + proj_create_crs_to_crs_from_pj(m_ctxt, src, dst, nullptr, options); + ObjectKeeper keeper_P(P); + ASSERT_EQ(P, nullptr); + } +} + +// --------------------------------------------------------------------------- + static void check_axis_is_latitude(PJ_CONTEXT *ctx, PJ *cs, int axis_number, const char *unit_name = "degree", |
