aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rwxr-xr-xtest/cli/testprojinfo4
-rw-r--r--test/cli/testprojinfo_out.dist25
-rw-r--r--test/unit/test_c_api.cpp201
-rw-r--r--test/unit/test_io.cpp42
-rw-r--r--test/unit/test_operation.cpp28
5 files changed, 222 insertions, 78 deletions
diff --git a/test/cli/testprojinfo b/test/cli/testprojinfo
index ea0dcc2d..bae38482 100755
--- a/test/cli/testprojinfo
+++ b/test/cli/testprojinfo
@@ -78,6 +78,10 @@ echo "Testing deprecated CRS: projinfo EPSG:26591" >> ${OUT}
$EXE EPSG:26591 >>${OUT} 2>&1
echo "" >>${OUT}
+echo "Testing non compliant WKT1" >> ${OUT}
+$EXE 'GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563]],UNIT["degree",0.0174532925199433]]' >>${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 40035489..1fd3bbbf 100644
--- a/test/cli/testprojinfo_out.dist
+++ b/test/cli/testprojinfo_out.dist
@@ -523,3 +523,28 @@ PROJCRS["Monte Mario (Rome) / Italy zone 1",
BBOX[36.53,5.94,47.04,12],
ID["EPSG",26591]]
+Testing non compliant WKT1
+Warning: GEOGCS should have a PRIMEM node
+Warning: Parsing error : syntax error, unexpected UNIT, expecting PRIMEM. Error occurred around:
+HEROID["WGS 84",6378137,298.257223563]],UNIT["degree",0.0174532925199433]]
+ ^
+PROJ string:
++proj=pipeline +step +proj=longlat +ellps=WGS84 +step +proj=unitconvert +xy_in=rad +xy_out=deg
+
+WKT2_2015 string:
+GEODCRS["WGS 84",
+ DATUM["World Geodetic System 1984",
+ ELLIPSOID["WGS 84",6378137,298.257223563,
+ LENGTHUNIT["metre",1,
+ ID["EPSG",9001]]]],
+ PRIMEM["Greenwich",0,
+ ANGLEUNIT["degree",0.0174532925199433],
+ ID["EPSG",8901]],
+ CS[ellipsoidal,2],
+ AXIS["longitude",east,
+ ORDER[1],
+ ANGLEUNIT["degree",0.0174532925199433]],
+ AXIS["latitude",north,
+ ORDER[2],
+ ANGLEUNIT["degree",0.0174532925199433]]]
+
diff --git a/test/unit/test_c_api.cpp b/test/unit/test_c_api.cpp
index 7df7442a..37ca076c 100644
--- a/test/unit/test_c_api.cpp
+++ b/test/unit/test_c_api.cpp
@@ -166,14 +166,128 @@ TEST_F(CApi, proj_obj_create_from_user_input) {
TEST_F(CApi, proj_obj_create_from_wkt) {
proj_obj_destroy(nullptr);
- EXPECT_EQ(proj_obj_create_from_wkt(m_ctxt, "invalid", nullptr), nullptr);
- auto obj = proj_obj_create_from_wkt(
- m_ctxt,
- GeographicCRS::EPSG_4326->exportToWKT(WKTFormatter::create().get())
- .c_str(),
- nullptr);
- ObjectKeeper keeper(obj);
- EXPECT_NE(obj, nullptr);
+ {
+ EXPECT_EQ(proj_obj_create_from_wkt(m_ctxt, "invalid", nullptr, nullptr,
+ nullptr),
+ nullptr);
+ }
+ {
+ PROJ_STRING_LIST warningList = nullptr;
+ PROJ_STRING_LIST errorList = nullptr;
+ EXPECT_EQ(proj_obj_create_from_wkt(m_ctxt, "invalid", nullptr,
+ &warningList, &errorList),
+ nullptr);
+ EXPECT_EQ(warningList, nullptr);
+ proj_string_list_destroy(warningList);
+ EXPECT_NE(errorList, nullptr);
+ proj_string_list_destroy(errorList);
+ }
+ {
+ auto obj = proj_obj_create_from_wkt(
+ m_ctxt,
+ GeographicCRS::EPSG_4326->exportToWKT(WKTFormatter::create().get())
+ .c_str(),
+ nullptr, nullptr, nullptr);
+ ObjectKeeper keeper(obj);
+ EXPECT_NE(obj, nullptr);
+ }
+ {
+ auto obj = proj_obj_create_from_wkt(
+ m_ctxt,
+ "GEOGCS[\"WGS 84\",\n"
+ " DATUM[\"WGS_1984\",\n"
+ " SPHEROID[\"WGS 84\",6378137,298.257223563,\"unused\"]],\n"
+ " PRIMEM[\"Greenwich\",0],\n"
+ " UNIT[\"degree\",0.0174532925199433]]",
+ nullptr, nullptr, nullptr);
+ EXPECT_EQ(obj, nullptr);
+ }
+ {
+ PROJ_STRING_LIST warningList = nullptr;
+ PROJ_STRING_LIST errorList = nullptr;
+ auto obj = proj_obj_create_from_wkt(
+ m_ctxt,
+ "GEOGCS[\"WGS 84\",\n"
+ " DATUM[\"WGS_1984\",\n"
+ " SPHEROID[\"WGS 84\",6378137,298.257223563,\"unused\"]],\n"
+ " PRIMEM[\"Greenwich\",0],\n"
+ " UNIT[\"degree\",0.0174532925199433]]",
+ nullptr, &warningList, &errorList);
+ EXPECT_EQ(obj, nullptr);
+ EXPECT_EQ(warningList, nullptr);
+ proj_string_list_destroy(warningList);
+ EXPECT_NE(errorList, nullptr);
+ proj_string_list_destroy(errorList);
+ }
+ {
+ PROJ_STRING_LIST warningList = nullptr;
+ PROJ_STRING_LIST errorList = nullptr;
+ const char *const options[] = {"STRICT=NO", nullptr};
+ auto obj = proj_obj_create_from_wkt(
+ m_ctxt,
+ "GEOGCS[\"WGS 84\",\n"
+ " DATUM[\"WGS_1984\",\n"
+ " SPHEROID[\"WGS 84\",6378137,298.257223563,\"unused\"]],\n"
+ " PRIMEM[\"Greenwich\",0],\n"
+ " UNIT[\"degree\",0.0174532925199433]]",
+ options, &warningList, &errorList);
+ ObjectKeeper keeper(obj);
+ EXPECT_NE(obj, nullptr);
+ EXPECT_EQ(warningList, nullptr);
+ proj_string_list_destroy(warningList);
+ EXPECT_NE(errorList, nullptr);
+ proj_string_list_destroy(errorList);
+ }
+ {
+ PROJ_STRING_LIST warningList = nullptr;
+ PROJ_STRING_LIST errorList = nullptr;
+ auto obj = proj_obj_create_from_wkt(
+ m_ctxt,
+ GeographicCRS::EPSG_4326->exportToWKT(WKTFormatter::create().get())
+ .c_str(),
+ nullptr, &warningList, &errorList);
+ ObjectKeeper keeper(obj);
+ EXPECT_NE(obj, nullptr);
+ EXPECT_EQ(warningList, nullptr);
+ EXPECT_EQ(errorList, nullptr);
+ }
+ // Warnings: missing projection parameters
+ {
+ PROJ_STRING_LIST warningList = nullptr;
+ PROJ_STRING_LIST errorList = nullptr;
+ auto obj = proj_obj_create_from_wkt(
+ m_ctxt, "PROJCS[\"test\",\n"
+ " GEOGCS[\"WGS 84\",\n"
+ " DATUM[\"WGS_1984\",\n"
+ " SPHEROID[\"WGS 84\",6378137,298.257223563]],\n"
+ " PRIMEM[\"Greenwich\",0],\n"
+ " UNIT[\"degree\",0.0174532925199433]],\n"
+ " PROJECTION[\"Transverse_Mercator\"],\n"
+ " PARAMETER[\"latitude_of_origin\",31],\n"
+ " UNIT[\"metre\",1]]",
+ nullptr, &warningList, &errorList);
+ ObjectKeeper keeper(obj);
+ EXPECT_NE(obj, nullptr);
+ EXPECT_NE(warningList, nullptr);
+ proj_string_list_destroy(warningList);
+ EXPECT_EQ(errorList, nullptr);
+ proj_string_list_destroy(errorList);
+ }
+ {
+ auto obj = proj_obj_create_from_wkt(
+ m_ctxt, "PROJCS[\"test\",\n"
+ " GEOGCS[\"WGS 84\",\n"
+ " DATUM[\"WGS_1984\",\n"
+ " SPHEROID[\"WGS 84\",6378137,298.257223563]],\n"
+ " PRIMEM[\"Greenwich\",0],\n"
+ " UNIT[\"degree\",0.0174532925199433]],\n"
+ " PROJECTION[\"Transverse_Mercator\"],\n"
+ " PARAMETER[\"latitude_of_origin\",31],\n"
+ " UNIT[\"metre\",1]]",
+ nullptr, nullptr, nullptr);
+ ObjectKeeper keeper(obj);
+ EXPECT_NE(obj, nullptr);
+ }
}
// ---------------------------------------------------------------------------
@@ -195,7 +309,7 @@ TEST_F(CApi, proj_obj_as_wkt) {
m_ctxt,
GeographicCRS::EPSG_4326->exportToWKT(WKTFormatter::create().get())
.c_str(),
- nullptr);
+ nullptr, nullptr, nullptr);
ObjectKeeper keeper(obj);
ASSERT_NE(obj, nullptr);
@@ -298,7 +412,7 @@ TEST_F(CApi, proj_obj_as_wkt_check_db_use) {
m_ctxt, "GEOGCS[\"AGD66\",DATUM[\"Australian_Geodetic_Datum_1966\","
"SPHEROID[\"Australian National Spheroid\",6378160,298.25]],"
"PRIMEM[\"Greenwich\",0],UNIT[\"degree\",0.0174532925199433]]",
- nullptr);
+ nullptr, nullptr, nullptr);
ObjectKeeper keeper(obj);
ASSERT_NE(obj, nullptr);
@@ -316,7 +430,7 @@ TEST_F(CApi, proj_obj_as_wkt_incompatible_WKT1) {
auto obj = proj_obj_create_from_wkt(
m_ctxt,
createBoundCRS()->exportToWKT(WKTFormatter::create().get()).c_str(),
- nullptr);
+ nullptr, nullptr, nullptr);
ObjectKeeper keeper(obj);
ASSERT_NE(obj, nullptr);
@@ -331,7 +445,7 @@ TEST_F(CApi, proj_obj_as_proj_string) {
m_ctxt,
GeographicCRS::EPSG_4326->exportToWKT(WKTFormatter::create().get())
.c_str(),
- nullptr);
+ nullptr, nullptr, nullptr);
ObjectKeeper keeper(obj);
ASSERT_NE(obj, nullptr);
@@ -356,7 +470,7 @@ TEST_F(CApi, proj_obj_as_proj_string_incompatible_WKT1) {
auto obj = proj_obj_create_from_wkt(
m_ctxt,
createBoundCRS()->exportToWKT(WKTFormatter::create().get()).c_str(),
- nullptr);
+ nullptr, nullptr, nullptr);
ObjectKeeper keeper(obj);
ASSERT_NE(obj, nullptr);
@@ -449,7 +563,7 @@ TEST_F(CApi, proj_obj_crs_create_bound_crs_to_WGS84_on_invalid_type) {
->derivingConversion()
->exportToWKT(WKTFormatter::create().get())
.c_str(),
- nullptr);
+ nullptr, nullptr, nullptr);
ObjectKeeper keeper(obj);
ASSERT_NE(obj, nullptr);
@@ -464,7 +578,7 @@ TEST_F(CApi, proj_obj_get_name) {
m_ctxt,
GeographicCRS::EPSG_4326->exportToWKT(WKTFormatter::create().get())
.c_str(),
- nullptr);
+ nullptr, nullptr, nullptr);
ObjectKeeper keeper(obj);
ASSERT_NE(obj, nullptr);
auto name = proj_obj_get_name(obj);
@@ -480,7 +594,7 @@ TEST_F(CApi, proj_obj_get_id_auth_name) {
m_ctxt,
GeographicCRS::EPSG_4326->exportToWKT(WKTFormatter::create().get())
.c_str(),
- nullptr);
+ nullptr, nullptr, nullptr);
ObjectKeeper keeper(obj);
ASSERT_NE(obj, nullptr);
auto auth = proj_obj_get_id_auth_name(obj, 0);
@@ -498,7 +612,7 @@ TEST_F(CApi, proj_obj_get_id_code) {
m_ctxt,
GeographicCRS::EPSG_4326->exportToWKT(WKTFormatter::create().get())
.c_str(),
- nullptr);
+ nullptr, nullptr, nullptr);
ObjectKeeper keeper(obj);
ASSERT_NE(obj, nullptr);
auto code = proj_obj_get_id_code(obj, 0);
@@ -517,7 +631,7 @@ TEST_F(CApi, proj_obj_get_type) {
m_ctxt,
GeographicCRS::EPSG_4326->exportToWKT(WKTFormatter::create().get())
.c_str(),
- nullptr);
+ nullptr, nullptr, nullptr);
ObjectKeeper keeper(obj);
ASSERT_NE(obj, nullptr);
EXPECT_EQ(proj_obj_get_type(obj), PJ_OBJ_TYPE_GEOGRAPHIC_2D_CRS);
@@ -527,7 +641,7 @@ TEST_F(CApi, proj_obj_get_type) {
m_ctxt,
GeographicCRS::EPSG_4979->exportToWKT(WKTFormatter::create().get())
.c_str(),
- nullptr);
+ nullptr, nullptr, nullptr);
ObjectKeeper keeper(obj);
ASSERT_NE(obj, nullptr);
EXPECT_EQ(proj_obj_get_type(obj), PJ_OBJ_TYPE_GEOGRAPHIC_3D_CRS);
@@ -537,7 +651,7 @@ TEST_F(CApi, proj_obj_get_type) {
m_ctxt,
GeographicCRS::EPSG_4978->exportToWKT(WKTFormatter::create().get())
.c_str(),
- nullptr);
+ nullptr, nullptr, nullptr);
ObjectKeeper keeper(obj);
ASSERT_NE(obj, nullptr);
EXPECT_EQ(proj_obj_get_type(obj), PJ_OBJ_TYPE_GEOCENTRIC_CRS);
@@ -547,7 +661,7 @@ TEST_F(CApi, proj_obj_get_type) {
m_ctxt, GeographicCRS::EPSG_4326->datum()
->exportToWKT(WKTFormatter::create().get())
.c_str(),
- nullptr);
+ nullptr, nullptr, nullptr);
ObjectKeeper keeper(obj);
ASSERT_NE(obj, nullptr);
EXPECT_EQ(proj_obj_get_type(obj), PJ_OBJ_TYPE_GEODETIC_REFERENCE_FRAME);
@@ -557,7 +671,7 @@ TEST_F(CApi, proj_obj_get_type) {
m_ctxt, GeographicCRS::EPSG_4326->ellipsoid()
->exportToWKT(WKTFormatter::create().get())
.c_str(),
- nullptr);
+ nullptr, nullptr, nullptr);
ObjectKeeper keeper(obj);
ASSERT_NE(obj, nullptr);
EXPECT_EQ(proj_obj_get_type(obj), PJ_OBJ_TYPE_ELLIPSOID);
@@ -567,7 +681,7 @@ TEST_F(CApi, proj_obj_get_type) {
m_ctxt, createProjectedCRS()
->exportToWKT(WKTFormatter::create().get())
.c_str(),
- nullptr);
+ nullptr, nullptr, nullptr);
ObjectKeeper keeper(obj);
ASSERT_NE(obj, nullptr);
EXPECT_EQ(proj_obj_get_type(obj), PJ_OBJ_TYPE_PROJECTED_CRS);
@@ -577,7 +691,7 @@ TEST_F(CApi, proj_obj_get_type) {
m_ctxt, createVerticalCRS()
->exportToWKT(WKTFormatter::create().get())
.c_str(),
- nullptr);
+ nullptr, nullptr, nullptr);
ObjectKeeper keeper(obj);
ASSERT_NE(obj, nullptr);
EXPECT_EQ(proj_obj_get_type(obj), PJ_OBJ_TYPE_VERTICAL_CRS);
@@ -588,7 +702,7 @@ TEST_F(CApi, proj_obj_get_type) {
->datum()
->exportToWKT(WKTFormatter::create().get())
.c_str(),
- nullptr);
+ nullptr, nullptr, nullptr);
ObjectKeeper keeper(obj);
ASSERT_NE(obj, nullptr);
EXPECT_EQ(proj_obj_get_type(obj), PJ_OBJ_TYPE_VERTICAL_REFERENCE_FRAME);
@@ -599,7 +713,7 @@ TEST_F(CApi, proj_obj_get_type) {
->derivingConversion()
->exportToWKT(WKTFormatter::create().get())
.c_str(),
- nullptr);
+ nullptr, nullptr, nullptr);
ObjectKeeper keeper(obj);
ASSERT_NE(obj, nullptr);
EXPECT_EQ(proj_obj_get_type(obj), PJ_OBJ_TYPE_CONVERSION);
@@ -608,7 +722,7 @@ TEST_F(CApi, proj_obj_get_type) {
auto obj = proj_obj_create_from_wkt(
m_ctxt,
createBoundCRS()->exportToWKT(WKTFormatter::create().get()).c_str(),
- nullptr);
+ nullptr, nullptr, nullptr);
ObjectKeeper keeper(obj);
ASSERT_NE(obj, nullptr);
EXPECT_EQ(proj_obj_get_type(obj), PJ_OBJ_TYPE_BOUND_CRS);
@@ -619,14 +733,14 @@ TEST_F(CApi, proj_obj_get_type) {
->transformation()
->exportToWKT(WKTFormatter::create().get())
.c_str(),
- nullptr);
+ nullptr, nullptr, nullptr);
ObjectKeeper keeper(obj);
ASSERT_NE(obj, nullptr);
EXPECT_EQ(proj_obj_get_type(obj), PJ_OBJ_TYPE_TRANSFORMATION);
}
{
auto obj = proj_obj_create_from_wkt(m_ctxt, "AUTHORITY[\"EPSG\", 4326]",
- nullptr);
+ nullptr, nullptr, nullptr);
ObjectKeeper keeper(obj);
ASSERT_EQ(obj, nullptr);
}
@@ -703,7 +817,7 @@ TEST_F(CApi, proj_crs) {
->exportToWKT(
WKTFormatter::create(WKTFormatter::Convention::WKT1_GDAL).get())
.c_str(),
- nullptr);
+ nullptr, nullptr, nullptr);
ASSERT_NE(crs, nullptr);
ObjectKeeper keeper(crs);
EXPECT_TRUE(proj_obj_is_crs(crs));
@@ -772,7 +886,7 @@ TEST_F(CApi, proj_obj_get_prime_meridian) {
->exportToWKT(
WKTFormatter::create(WKTFormatter::Convention::WKT1_GDAL).get())
.c_str(),
- nullptr);
+ nullptr, nullptr, nullptr);
ASSERT_NE(crs, nullptr);
ObjectKeeper keeper(crs);
@@ -811,7 +925,7 @@ TEST_F(CApi, proj_crs_compound) {
auto crs = proj_obj_create_from_wkt(
m_ctxt,
createCompoundCRS()->exportToWKT(WKTFormatter::create().get()).c_str(),
- nullptr);
+ nullptr, nullptr, nullptr);
ASSERT_NE(crs, nullptr);
ObjectKeeper keeper(crs);
EXPECT_EQ(proj_obj_get_type(crs), PJ_OBJ_TYPE_COMPOUND_CRS);
@@ -837,7 +951,7 @@ TEST_F(CApi, proj_obj_get_source_target_crs_bound_crs) {
auto crs = proj_obj_create_from_wkt(
m_ctxt,
createBoundCRS()->exportToWKT(WKTFormatter::create().get()).c_str(),
- nullptr);
+ nullptr, nullptr, nullptr);
ASSERT_NE(crs, nullptr);
ObjectKeeper keeper(crs);
@@ -860,7 +974,7 @@ TEST_F(CApi, proj_obj_get_source_target_crs_transformation) {
->transformation()
->exportToWKT(WKTFormatter::create().get())
.c_str(),
- nullptr);
+ nullptr, nullptr, nullptr);
ASSERT_NE(obj, nullptr);
ObjectKeeper keeper(obj);
@@ -881,7 +995,7 @@ TEST_F(CApi, proj_obj_get_source_crs_of_projected_crs) {
auto crs = proj_obj_create_from_wkt(
m_ctxt,
createProjectedCRS()->exportToWKT(WKTFormatter::create().get()).c_str(),
- nullptr);
+ nullptr, nullptr, nullptr);
ASSERT_NE(crs, nullptr);
ObjectKeeper keeper(crs);
@@ -911,7 +1025,8 @@ TEST_F(CApi, proj_obj_get_source_target_crs_conversion_without_crs) {
TEST_F(CApi, proj_obj_get_source_target_crs_invalid_object) {
auto obj = proj_obj_create_from_wkt(
- m_ctxt, "ELLIPSOID[\"WGS 84\",6378137,298.257223563]", nullptr);
+ m_ctxt, "ELLIPSOID[\"WGS 84\",6378137,298.257223563]", nullptr, nullptr,
+ nullptr);
ASSERT_NE(obj, nullptr);
ObjectKeeper keeper(obj);
@@ -1089,7 +1204,7 @@ TEST_F(CApi, transformation_from_boundCRS) {
auto crs = proj_obj_create_from_wkt(
m_ctxt,
createBoundCRS()->exportToWKT(WKTFormatter::create().get()).c_str(),
- nullptr);
+ nullptr, nullptr, nullptr);
ASSERT_NE(crs, nullptr);
ObjectKeeper keeper(crs);
@@ -1465,7 +1580,7 @@ TEST_F(CApi, proj_obj_identify) {
m_ctxt,
GeographicCRS::EPSG_4807->exportToWKT(WKTFormatter::create().get())
.c_str(),
- nullptr);
+ nullptr, nullptr, nullptr);
ObjectKeeper keeper(obj);
ASSERT_NE(obj, nullptr);
{
@@ -1486,7 +1601,7 @@ TEST_F(CApi, proj_obj_identify) {
m_ctxt,
Ellipsoid::GRS1980->exportToWKT(WKTFormatter::create().get())
.c_str(),
- nullptr);
+ nullptr, nullptr, nullptr);
ObjectKeeper keeperEllps(objEllps);
auto res =
proj_obj_identify(m_ctxt, objEllps, nullptr, nullptr, nullptr);
@@ -2245,7 +2360,7 @@ TEST_F(CApi, proj_obj_crs_alter_geodetic_crs) {
auto projCRS = proj_obj_create_from_wkt(
m_ctxt,
createProjectedCRS()->exportToWKT(WKTFormatter::create().get()).c_str(),
- nullptr);
+ nullptr, nullptr, nullptr);
ObjectKeeper keeper(projCRS);
ASSERT_NE(projCRS, nullptr);
@@ -2306,7 +2421,7 @@ TEST_F(CApi, proj_obj_crs_alter_cs_angular_unit) {
m_ctxt,
GeographicCRS::EPSG_4326->exportToWKT(WKTFormatter::create().get())
.c_str(),
- nullptr);
+ nullptr, nullptr, nullptr);
ObjectKeeper keeper(crs);
ASSERT_NE(crs, nullptr);
@@ -2363,7 +2478,7 @@ TEST_F(CApi, proj_obj_crs_alter_cs_linear_unit) {
auto crs = proj_obj_create_from_wkt(
m_ctxt,
createProjectedCRS()->exportToWKT(WKTFormatter::create().get()).c_str(),
- nullptr);
+ nullptr, nullptr, nullptr);
ObjectKeeper keeper(crs);
ASSERT_NE(crs, nullptr);
@@ -2420,7 +2535,7 @@ TEST_F(CApi, proj_obj_crs_alter_parameters_linear_unit) {
auto crs = proj_obj_create_from_wkt(
m_ctxt,
createProjectedCRS()->exportToWKT(WKTFormatter::create().get()).c_str(),
- nullptr);
+ nullptr, nullptr, nullptr);
ObjectKeeper keeper(crs);
ASSERT_NE(crs, nullptr);
diff --git a/test/unit/test_io.cpp b/test/unit/test_io.cpp
index a385fe87..8272cfb4 100644
--- a/test/unit/test_io.cpp
+++ b/test/unit/test_io.cpp
@@ -446,7 +446,7 @@ TEST(wkt_parse, wkt1_EPSG_4807_grad_mess) {
" PRIMEM[\"Paris\",2.33722917,\n"
" AUTHORITY[\"EPSG\",\"8903\"]],\n"
" UNIT[\"grad\",0.015707963267949,\n"
- " AUTHORITY[\"EPSG\",9105]],\n"
+ " AUTHORITY[\"EPSG\",\"9105\"]],\n"
" AXIS[\"latitude\",NORTH],\n"
" AXIS[\"longitude\",EAST],\n"
" AUTHORITY[\"EPSG\",\"4807\"]]");
@@ -868,7 +868,7 @@ TEST(wkt_parse, wkt1_geocentric) {
" PRIMEM[\"Greenwich\",0,\n"
" AUTHORITY[\"EPSG\",\"8901\"]],\n"
" UNIT[\"metre\",1,\n"
- " AUTHORITY[\"EPSG\",9001]],\n"
+ " AUTHORITY[\"EPSG\",\"9001\"]],\n"
" AXIS[\"Geocentric X\",OTHER],\n"
" AXIS[\"Geocentric Y\",OTHER],\n"
" AXIS[\"Geocentric Z\",NORTH],\n"
@@ -890,7 +890,7 @@ TEST(wkt_parse, wkt1_geocentric_with_z_OTHER) {
" PRIMEM[\"Greenwich\",0,\n"
" AUTHORITY[\"EPSG\",\"8901\"]],\n"
" UNIT[\"metre\",1,\n"
- " AUTHORITY[\"EPSG\",9001]],\n"
+ " AUTHORITY[\"EPSG\",\"9001\"]],\n"
" AXIS[\"Geocentric X\",OTHER],\n"
" AXIS[\"Geocentric Y\",OTHER],\n"
" AXIS[\"Geocentric Z\",OTHER],\n"
@@ -1004,7 +1004,7 @@ TEST(wkt_parse, wkt1_projected) {
" PRIMEM[\"Greenwich\",0,\n"
" AUTHORITY[\"EPSG\",\"8901\"]],\n"
" UNIT[\"degree\",0.0174532925199433,\n"
- " AUTHORITY[\"EPSG\",9122]],\n"
+ " AUTHORITY[\"EPSG\",\"9122\"]],\n"
" AXIS[\"latitude\",NORTH],\n"
" AXIS[\"longitude\",EAST],\n"
" AUTHORITY[\"EPSG\",\"4326\"]],\n"
@@ -1015,7 +1015,7 @@ TEST(wkt_parse, wkt1_projected) {
" PARAMETER[\"false_easting\",500000],\n"
" PARAMETER[\"false_northing\",0],\n"
" UNIT[\"metre\",1,\n"
- " AUTHORITY[\"EPSG\",9001]],\n"
+ " AUTHORITY[\"EPSG\",\"9001\"]],\n"
" AXIS[\"(E)\",EAST],\n"
" AXIS[\"(N)\",NORTH],\n"
" AUTHORITY[\"EPSG\",\"32631\"]]";
@@ -1037,7 +1037,7 @@ TEST(wkt_parse, wkt1_projected_no_axis) {
" PRIMEM[\"Greenwich\",0,\n"
" AUTHORITY[\"EPSG\",\"8901\"]],\n"
" UNIT[\"degree\",0.0174532925199433,\n"
- " AUTHORITY[\"EPSG\",9122]],\n"
+ " AUTHORITY[\"EPSG\",\"9122\"]],\n"
" AXIS[\"latitude\",NORTH],\n"
" AXIS[\"longitude\",EAST],\n"
" AUTHORITY[\"EPSG\",\"4326\"]],\n"
@@ -1048,7 +1048,7 @@ TEST(wkt_parse, wkt1_projected_no_axis) {
" PARAMETER[\"false_easting\",500000],\n"
" PARAMETER[\"false_northing\",0],\n"
" UNIT[\"metre\",1,\n"
- " AUTHORITY[\"EPSG\",9001]],\n"
+ " AUTHORITY[\"EPSG\",\"9001\"]],\n"
" AUTHORITY[\"EPSG\",\"32631\"]]";
auto obj = WKTParser().createFromWKT(wkt);
auto crs = nn_dynamic_pointer_cast<ProjectedCRS>(obj);
@@ -1753,7 +1753,7 @@ TEST(wkt_parse, vertcrs_WKT1_GDAL) {
" VERT_DATUM[\"Ordnance Datum Newlyn\",2005,\n"
" AUTHORITY[\"EPSG\",\"5101\"]],\n"
" UNIT[\"metre\",1,\n"
- " AUTHORITY[\"EPSG\",9001]],\n"
+ " AUTHORITY[\"EPSG\",\"9001\"]],\n"
" AXIS[\"gravity-related height\",UP],\n"
" AUTHORITY[\"EPSG\",\"5701\"]]";
@@ -1922,7 +1922,7 @@ TEST(wkt_parse, COMPD_CS) {
" PRIMEM[\"Greenwich\",0,\n"
" AUTHORITY[\"EPSG\",\"8901\"]],\n"
" UNIT[\"degree\",0.0174532925199433,\n"
- " AUTHORITY[\"EPSG\",9122]],\n"
+ " AUTHORITY[\"EPSG\",\"9122\"]],\n"
" AXIS[\"Latitude\",NORTH],\n"
" AXIS[\"Longitude\",EAST],\n"
" AUTHORITY[\"EPSG\",\"4326\"]],\n"
@@ -1933,7 +1933,7 @@ TEST(wkt_parse, COMPD_CS) {
" PARAMETER[\"false_easting\",500000],\n"
" PARAMETER[\"false_northing\",0],\n"
" UNIT[\"metre\",1,\n"
- " AUTHORITY[\"EPSG\",9001]],\n"
+ " AUTHORITY[\"EPSG\",\"9001\"]],\n"
" AXIS[\"Easting\",EAST],\n"
" AXIS[\"Northing\",NORTH],\n"
" AUTHORITY[\"EPSG\",\"32631\"]],\n"
@@ -1941,7 +1941,7 @@ TEST(wkt_parse, COMPD_CS) {
" VERT_DATUM[\"Ordnance Datum Newlyn\",2005,\n"
" AUTHORITY[\"EPSG\",\"5101\"]],\n"
" UNIT[\"metre\",1,\n"
- " AUTHORITY[\"EPSG\",9001]],\n"
+ " AUTHORITY[\"EPSG\",\"9001\"]],\n"
" AXIS[\"Gravity-related height\",UP],\n"
" AUTHORITY[\"EPSG\",\"5701\"]],\n"
" AUTHORITY[\"codespace\",\"code\"]]");
@@ -2213,7 +2213,7 @@ TEST(wkt_parse, projcs_TOWGS84_7terms) {
" PRIMEM[\"Greenwich\",0,\n"
" AUTHORITY[\"EPSG\",\"8901\"]],\n"
" UNIT[\"degree\",0.0174532925199433,\n"
- " AUTHORITY[\"EPSG\",9122]],\n"
+ " AUTHORITY[\"EPSG\",\"9122\"]],\n"
" AXIS[\"Latitude\",NORTH],\n"
" AXIS[\"Longitude\",EAST]],\n"
" PROJECTION[\"Transverse_Mercator\"],\n"
@@ -2223,7 +2223,7 @@ TEST(wkt_parse, projcs_TOWGS84_7terms) {
" PARAMETER[\"false_easting\",500000],\n"
" PARAMETER[\"false_northing\",0],\n"
" UNIT[\"metre\",1,\n"
- " AUTHORITY[\"EPSG\",9001]],\n"
+ " AUTHORITY[\"EPSG\",\"9001\"]],\n"
" AXIS[\"Easting\",EAST],\n"
" AXIS[\"Northing\",NORTH]]";
@@ -4607,7 +4607,7 @@ TEST(wkt_parse, invalid_PROJCS) {
" AUTHORITY[\"EPSG\",\"6326\"]],\n"
" PRIMEM[\"x\",0],\n"
" UNIT[\"degree\",0.0174532925199433,\n"
- " AUTHORITY[\"EPSG\",9122]],\n"
+ " AUTHORITY[\"EPSG\",\"9122\"]],\n"
" AXIS[\"latitude\",NORTH],\n"
" AXIS[\"longitude\",EAST],\n"
" AUTHORITY[\"EPSG\",\"4326\"]]\n");
@@ -4627,17 +4627,17 @@ TEST(wkt_parse, invalid_PROJCS) {
ParsingException);
// not enough children in PARAMETER
- EXPECT_THROW(
- WKTParser().createFromWKT(
- startWKT +
- ",PROJECTION[\"x\"],PARAMETER[\"z\",\"foo\"],UNIT[\"metre\",1]]"),
- ParsingException);
+ EXPECT_THROW(WKTParser().createFromWKT(
+ startWKT +
+ ",PROJECTION[\"x\"],PARAMETER[\"z\"],UNIT[\"metre\",1]]"),
+ ParsingException);
EXPECT_NO_THROW(WKTParser().createFromWKT(
- startWKT + ",PROJECTION[\"x\"],UNIT[\"metre\",1]]"));
+ startWKT + ",PROJECTION[\"x\"],PARAMETER[\"z\",1],UNIT[\"metre\",1]]"));
// missing UNIT
- EXPECT_THROW(WKTParser().createFromWKT(startWKT + ",PROJECTION[\"x\"]]"),
+ EXPECT_THROW(WKTParser().createFromWKT(
+ startWKT + ",PROJECTION[\"x\"],PARAMETER[\"z\",1]]"),
ParsingException);
}
diff --git a/test/unit/test_operation.cpp b/test/unit/test_operation.cpp
index 905eecdb..636db7a7 100644
--- a/test/unit/test_operation.cpp
+++ b/test/unit/test_operation.cpp
@@ -3310,7 +3310,7 @@ TEST(operation, webmerc_import_from_broken_esri_WGS_84_Pseudo_Mercator) {
"PARAMETER[\"false_northing\",0],UNIT[\"Meter\",1],"
"PARAMETER[\"standard_parallel_1\",0.0]]";
- auto obj = WKTParser().createFromWKT(wkt1);
+ auto obj = WKTParser().setStrict(false).createFromWKT(wkt1);
auto crs = nn_dynamic_pointer_cast<ProjectedCRS>(obj);
ASSERT_TRUE(crs != nullptr);
@@ -3620,7 +3620,7 @@ TEST(operation, wkt1_import_polar_stereographic_variantA) {
" PARAMETER[\"central_meridian\",2],\n"
" PARAMETER[\"scale_factor\",3],\n"
" PARAMETER[\"false_easting\",4],\n"
- " PARAMETER[\"false_northing\",5]"
+ " PARAMETER[\"false_northing\",5],\n"
" UNIT[\"metre\",1]]";
auto obj = WKTParser().createFromWKT(wkt);
auto crs = nn_dynamic_pointer_cast<ProjectedCRS>(obj);
@@ -3649,7 +3649,7 @@ TEST(operation, wkt1_import_polar_stereographic_variantB) {
" PARAMETER[\"central_meridian\",2],\n"
" PARAMETER[\"scale_factor\",1],\n"
" PARAMETER[\"false_easting\",4],\n"
- " PARAMETER[\"false_northing\",5]"
+ " PARAMETER[\"false_northing\",5],\n"
" UNIT[\"metre\",1]]";
auto obj = WKTParser().createFromWKT(wkt);
auto crs = nn_dynamic_pointer_cast<ProjectedCRS>(obj);
@@ -3678,7 +3678,7 @@ TEST(operation, wkt1_import_polar_stereographic_ambiguous) {
" PARAMETER[\"central_meridian\",2],\n"
" PARAMETER[\"scale_factor\",3],\n"
" PARAMETER[\"false_easting\",4],\n"
- " PARAMETER[\"false_northing\",5]"
+ " PARAMETER[\"false_northing\",5],\n"
" UNIT[\"metre\",1]]";
auto obj = WKTParser().createFromWKT(wkt);
auto crs = nn_dynamic_pointer_cast<ProjectedCRS>(obj);
@@ -6827,9 +6827,9 @@ TEST(operation, conversion_missing_parameter) {
" PARAMETER[\"false_easting\",500000],"
" UNIT[\"metre\",1,"
" AUTHORITY[\"EPSG\",\"9001\"]],"
- " AUTHORITY[\"EPSG\",\"2038\"],"
" AXIS[\"Easting\",EAST],"
- " AXIS[\"Northing\",NORTH]]";
+ " AXIS[\"Northing\",NORTH],"
+ " AUTHORITY[\"EPSG\",\"2038\"]]";
auto obj1 = WKTParser().createFromWKT(wkt1);
auto crs1 = nn_dynamic_pointer_cast<ProjectedCRS>(obj1);
ASSERT_TRUE(crs1 != nullptr);
@@ -6854,9 +6854,9 @@ TEST(operation, conversion_missing_parameter) {
" PARAMETER[\"false_northing\",0],"
" UNIT[\"metre\",1,"
" AUTHORITY[\"EPSG\",\"9001\"]],"
- " AUTHORITY[\"EPSG\",\"2038\"],"
" AXIS[\"Easting\",EAST],"
- " AXIS[\"Northing\",NORTH]]";
+ " AXIS[\"Northing\",NORTH],"
+ " AUTHORITY[\"EPSG\",\"2038\"]]";
auto obj2 = WKTParser().createFromWKT(wkt2);
auto crs2 = nn_dynamic_pointer_cast<ProjectedCRS>(obj2);
ASSERT_TRUE(crs2 != nullptr);
@@ -6881,9 +6881,9 @@ TEST(operation, conversion_missing_parameter) {
" PARAMETER[\"false_northing\",0],"
" UNIT[\"metre\",1,"
" AUTHORITY[\"EPSG\",\"9001\"]],"
- " AUTHORITY[\"EPSG\",\"2038\"],"
" AXIS[\"Easting\",EAST],"
- " AXIS[\"Northing\",NORTH]]";
+ " AXIS[\"Northing\",NORTH],"
+ " AUTHORITY[\"EPSG\",\"2038\"]]";
auto obj3 = WKTParser().createFromWKT(wkt3);
auto crs3 = nn_dynamic_pointer_cast<ProjectedCRS>(obj3);
ASSERT_TRUE(crs3 != nullptr);
@@ -6909,9 +6909,9 @@ TEST(operation, conversion_missing_parameter) {
" PARAMETER[\"UNKNOWN\",13],"
" UNIT[\"metre\",1,"
" AUTHORITY[\"EPSG\",\"9001\"]],"
- " AUTHORITY[\"EPSG\",\"2038\"],"
" AXIS[\"Easting\",EAST],"
- " AXIS[\"Northing\",NORTH]]";
+ " AXIS[\"Northing\",NORTH],"
+ " AUTHORITY[\"EPSG\",\"2038\"]]";
auto obj4 = WKTParser().createFromWKT(wkt4);
auto crs4 = nn_dynamic_pointer_cast<ProjectedCRS>(obj4);
ASSERT_TRUE(crs4 != nullptr);
@@ -6936,9 +6936,9 @@ TEST(operation, conversion_missing_parameter) {
" PARAMETER[\"false_northing\",-99999],"
" UNIT[\"metre\",1,"
" AUTHORITY[\"EPSG\",\"9001\"]],"
- " AUTHORITY[\"EPSG\",\"2038\"],"
" AXIS[\"Easting\",EAST],"
- " AXIS[\"Northing\",NORTH]]";
+ " AXIS[\"Northing\",NORTH],"
+ " AUTHORITY[\"EPSG\",\"2038\"]]";
auto obj5 = WKTParser().createFromWKT(wkt5);
auto crs5 = nn_dynamic_pointer_cast<ProjectedCRS>(obj5);
ASSERT_TRUE(crs5 != nullptr);