aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2020-10-08 17:08:27 +0200
committerEven Rouault <even.rouault@spatialys.com>2020-11-01 12:57:34 +0100
commit82695cce869e1bcf2eb2a8ff078b679b6a21c663 (patch)
tree28aa7e4335bdc3c5873432d6801eed930541054a /test
parentb7bf499b8449a61cdc24dcdaa0bf035f57af1b3c (diff)
downloadPROJ-82695cce869e1bcf2eb2a8ff078b679b6a21c663.tar.gz
PROJ-82695cce869e1bcf2eb2a8ff078b679b6a21c663.zip
When reading from database, possibly return Geographic/GeodeticCRS with a DatumEnsemble, typically for WGS 84 and ETRS89 ('breaking change')
Diffstat (limited to 'test')
-rw-r--r--test/cli/testprojinfo_out.dist116
-rw-r--r--test/unit/test_c_api.cpp11
-rw-r--r--test/unit/test_factory.cpp18
3 files changed, 124 insertions, 21 deletions
diff --git a/test/cli/testprojinfo_out.dist b/test/cli/testprojinfo_out.dist
index 7da5add7..2d4990ee 100644
--- a/test/cli/testprojinfo_out.dist
+++ b/test/cli/testprojinfo_out.dist
@@ -4,9 +4,16 @@ PROJ.4 string:
WKT2:2019 string:
GEOGCRS["WGS 84",
- DATUM["World Geodetic System 1984",
+ ENSEMBLE["World Geodetic System 1984 ensemble",
+ MEMBER["World Geodetic System 1984 (Transit)"],
+ MEMBER["World Geodetic System 1984 (G730)"],
+ MEMBER["World Geodetic System 1984 (G873)"],
+ MEMBER["World Geodetic System 1984 (G1150)"],
+ MEMBER["World Geodetic System 1984 (G1674)"],
+ MEMBER["World Geodetic System 1984 (G1762)"],
ELLIPSOID["WGS 84",6378137,298.257223563,
- LENGTHUNIT["metre",1]]],
+ LENGTHUNIT["metre",1]],
+ ENSEMBLEACCURACY[2.0]],
PRIMEM["Greenwich",0,
ANGLEUNIT["degree",0.0174532925199433]],
CS[ellipsoidal,2],
@@ -59,9 +66,16 @@ GEODCRS["WGS 84",
Testing projinfo -o WKT2_2019 EPSG:4326
WKT2:2019 string:
GEOGCRS["WGS 84",
- DATUM["World Geodetic System 1984",
+ ENSEMBLE["World Geodetic System 1984 ensemble",
+ MEMBER["World Geodetic System 1984 (Transit)"],
+ MEMBER["World Geodetic System 1984 (G730)"],
+ MEMBER["World Geodetic System 1984 (G873)"],
+ MEMBER["World Geodetic System 1984 (G1150)"],
+ MEMBER["World Geodetic System 1984 (G1674)"],
+ MEMBER["World Geodetic System 1984 (G1762)"],
ELLIPSOID["WGS 84",6378137,298.257223563,
- LENGTHUNIT["metre",1]]],
+ LENGTHUNIT["metre",1]],
+ ENSEMBLEACCURACY[2.0]],
PRIMEM["Greenwich",0,
ANGLEUNIT["degree",0.0174532925199433]],
CS[ellipsoidal,2],
@@ -102,9 +116,16 @@ GEODCRS["WGS 84",
WKT2:2019 string:
GEOGCRS["WGS 84",
- DATUM["World Geodetic System 1984",
+ ENSEMBLE["World Geodetic System 1984 ensemble",
+ MEMBER["World Geodetic System 1984 (Transit)"],
+ MEMBER["World Geodetic System 1984 (G730)"],
+ MEMBER["World Geodetic System 1984 (G873)"],
+ MEMBER["World Geodetic System 1984 (G1150)"],
+ MEMBER["World Geodetic System 1984 (G1674)"],
+ MEMBER["World Geodetic System 1984 (G1762)"],
ELLIPSOID["WGS 84",6378137,298.257223563,
- LENGTHUNIT["metre",1]]],
+ LENGTHUNIT["metre",1]],
+ ENSEMBLEACCURACY[2.0]],
PRIMEM["Greenwich",0,
ANGLEUNIT["degree",0.0174532925199433]],
CS[ellipsoidal,2],
@@ -142,13 +163,61 @@ PROJJSON:
"$schema": "https://proj.org/schemas/v0.2/projjson.schema.json",
"type": "GeographicCRS",
"name": "WGS 84",
- "datum": {
- "type": "GeodeticReferenceFrame",
- "name": "World Geodetic System 1984",
+ "datum_ensemble": {
+ "name": "World Geodetic System 1984 ensemble",
+ "members": [
+ {
+ "name": "World Geodetic System 1984 (Transit)",
+ "id": {
+ "authority": "EPSG",
+ "code": 1166
+ }
+ },
+ {
+ "name": "World Geodetic System 1984 (G730)",
+ "id": {
+ "authority": "EPSG",
+ "code": 1152
+ }
+ },
+ {
+ "name": "World Geodetic System 1984 (G873)",
+ "id": {
+ "authority": "EPSG",
+ "code": 1153
+ }
+ },
+ {
+ "name": "World Geodetic System 1984 (G1150)",
+ "id": {
+ "authority": "EPSG",
+ "code": 1154
+ }
+ },
+ {
+ "name": "World Geodetic System 1984 (G1674)",
+ "id": {
+ "authority": "EPSG",
+ "code": 1155
+ }
+ },
+ {
+ "name": "World Geodetic System 1984 (G1762)",
+ "id": {
+ "authority": "EPSG",
+ "code": 1156
+ }
+ }
+ ],
"ellipsoid": {
"name": "WGS 84",
"semi_major_axis": 6378137,
"inverse_flattening": 298.257223563
+ },
+ "accuracy": "2.0",
+ "id": {
+ "authority": "EPSG",
+ "code": 6326
}
},
"coordinate_system": {
@@ -1023,9 +1092,16 @@ PROJ.4 string:
WKT2:2019 string:
PROJCRS["WGS 84 / UTM zone 31N",
BASEGEOGCRS["WGS 84",
- DATUM["World Geodetic System 1984",
+ ENSEMBLE["World Geodetic System 1984 ensemble",
+ MEMBER["World Geodetic System 1984 (Transit)"],
+ MEMBER["World Geodetic System 1984 (G730)"],
+ MEMBER["World Geodetic System 1984 (G873)"],
+ MEMBER["World Geodetic System 1984 (G1150)"],
+ MEMBER["World Geodetic System 1984 (G1674)"],
+ MEMBER["World Geodetic System 1984 (G1762)"],
ELLIPSOID["WGS 84",6378137,298.257223563,
- LENGTHUNIT["metre",1]]],
+ LENGTHUNIT["metre",1]],
+ ENSEMBLEACCURACY[2.0]],
PRIMEM["Greenwich",0,
ANGLEUNIT["degree",0.0174532925199433]],
ID["EPSG",4979]],
@@ -1198,9 +1274,23 @@ Testing -k operation EPSG:8457 -o PROJ -q
Testing D_WGS_1984
WKT2:2019 string:
-DATUM["World Geodetic System 1984",
+ENSEMBLE["World Geodetic System 1984 ensemble",
+ MEMBER["World Geodetic System 1984 (Transit)",
+ ID["EPSG",1166]],
+ MEMBER["World Geodetic System 1984 (G730)",
+ ID["EPSG",1152]],
+ MEMBER["World Geodetic System 1984 (G873)",
+ ID["EPSG",1153]],
+ MEMBER["World Geodetic System 1984 (G1150)",
+ ID["EPSG",1154]],
+ MEMBER["World Geodetic System 1984 (G1674)",
+ ID["EPSG",1155]],
+ MEMBER["World Geodetic System 1984 (G1762)",
+ ID["EPSG",1156]],
ELLIPSOID["WGS 84",6378137,298.257223563,
- LENGTHUNIT["metre",1]],
+ LENGTHUNIT["metre",1],
+ ID["EPSG",7030]],
+ ENSEMBLEACCURACY[2.0],
ID["EPSG",6326]]
Testing -k datum D_WGS_1984
diff --git a/test/unit/test_c_api.cpp b/test/unit/test_c_api.cpp
index 5da6b369..a72aa72e 100644
--- a/test/unit/test_c_api.cpp
+++ b/test/unit/test_c_api.cpp
@@ -4841,9 +4841,16 @@ TEST_F(CApi, proj_create_derived_geographic_crs) {
const char *expected_wkt =
"GEOGCRS[\"my rotated CRS\",\n"
" BASEGEOGCRS[\"WGS 84\",\n"
- " DATUM[\"World Geodetic System 1984\",\n"
+ " ENSEMBLE[\"World Geodetic System 1984 ensemble\",\n"
+ " MEMBER[\"World Geodetic System 1984 (Transit)\"],\n"
+ " MEMBER[\"World Geodetic System 1984 (G730)\"],\n"
+ " MEMBER[\"World Geodetic System 1984 (G873)\"],\n"
+ " MEMBER[\"World Geodetic System 1984 (G1150)\"],\n"
+ " MEMBER[\"World Geodetic System 1984 (G1674)\"],\n"
+ " MEMBER[\"World Geodetic System 1984 (G1762)\"],\n"
" ELLIPSOID[\"WGS 84\",6378137,298.257223563,\n"
- " LENGTHUNIT[\"metre\",1]]],\n"
+ " LENGTHUNIT[\"metre\",1]],\n"
+ " ENSEMBLEACCURACY[2.0]],\n"
" PRIMEM[\"Greenwich\",0,\n"
" ANGLEUNIT[\"degree\",0.0174532925199433]]],\n"
" DERIVINGCONVERSION[\"Pole rotation (GRIB convention)\",\n"
diff --git a/test/unit/test_factory.cpp b/test/unit/test_factory.cpp
index 1005d49b..c869fa50 100644
--- a/test/unit/test_factory.cpp
+++ b/test/unit/test_factory.cpp
@@ -531,8 +531,10 @@ TEST(factory, AuthorityFactory_createGeodeticCRS_geographic2D) {
EXPECT_EQ(gcrs->identifiers()[0]->code(), "4326");
EXPECT_EQ(*(gcrs->identifiers()[0]->codeSpace()), "EPSG");
EXPECT_EQ(*(gcrs->name()->description()), "WGS 84");
- EXPECT_TRUE(
- gcrs->datum()->isEquivalentTo(factory->createDatum("6326").get()));
+ ASSERT_TRUE(gcrs->datum() == nullptr);
+ ASSERT_TRUE(gcrs->datumEnsemble() != nullptr);
+ EXPECT_TRUE(gcrs->datumEnsemble()->isEquivalentTo(
+ factory->createDatumEnsemble("6326").get()));
EXPECT_TRUE(gcrs->coordinateSystem()->isEquivalentTo(
factory->createCoordinateSystem("6422").get()));
auto domain = crs->domains()[0];
@@ -566,8 +568,10 @@ TEST(factory, AuthorityFactory_createGeodeticCRS_geographic3D) {
EXPECT_EQ(gcrs->identifiers()[0]->code(), "4979");
EXPECT_EQ(*(gcrs->identifiers()[0]->codeSpace()), "EPSG");
EXPECT_EQ(*(gcrs->name()->description()), "WGS 84");
- EXPECT_TRUE(
- gcrs->datum()->isEquivalentTo(factory->createDatum("6326").get()));
+ ASSERT_TRUE(gcrs->datum() == nullptr);
+ ASSERT_TRUE(gcrs->datumEnsemble() != nullptr);
+ EXPECT_TRUE(gcrs->datumEnsemble()->isEquivalentTo(
+ factory->createDatumEnsemble("6326").get()));
EXPECT_TRUE(gcrs->coordinateSystem()->isEquivalentTo(
factory->createCoordinateSystem("6423").get()));
}
@@ -582,8 +586,10 @@ TEST(factory, AuthorityFactory_createGeodeticCRS_geocentric) {
EXPECT_EQ(crs->identifiers()[0]->code(), "4978");
EXPECT_EQ(*(crs->identifiers()[0]->codeSpace()), "EPSG");
EXPECT_EQ(*(crs->name()->description()), "WGS 84");
- EXPECT_TRUE(
- crs->datum()->isEquivalentTo(factory->createDatum("6326").get()));
+ ASSERT_TRUE(crs->datum() == nullptr);
+ ASSERT_TRUE(crs->datumEnsemble() != nullptr);
+ EXPECT_TRUE(crs->datumEnsemble()->isEquivalentTo(
+ factory->createDatumEnsemble("6326").get()));
EXPECT_TRUE(crs->coordinateSystem()->isEquivalentTo(
factory->createCoordinateSystem("6500").get()));
}