aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2020-12-16 21:02:37 +0100
committerGitHub <noreply@github.com>2020-12-16 21:02:37 +0100
commit7766b1aad7328b94b7ecc9afe0ad7e874c989ad3 (patch)
treeed39359433f8004f03d0e4bef02b0cc41e62f0d5 /test
parent1a84a71349c31740b4a525971cf56c899dda858e (diff)
parentda066800e59dcd5c3bf5e88ccca1bf1762de74dc (diff)
downloadPROJ-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-xtest/cli/testprojinfo4
-rw-r--r--test/cli/testprojinfo_out.dist3
-rwxr-xr-xtest/cli/testvarious12
-rw-r--r--test/cli/tv_out.dist4
-rw-r--r--test/unit/test_c_api.cpp58
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",