diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2019-08-09 17:10:20 +0200 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2019-08-09 17:41:23 +0200 |
| commit | f0d766e45640800412c08a7cb9ab4f8823d88d05 (patch) | |
| tree | 1973086c9f52043d61fb1a71cbbc1c3a794c3afc /test | |
| parent | 81bd57dfd8cfae609288643d1b09a4805f1bcded (diff) | |
| download | PROJ-f0d766e45640800412c08a7cb9ab4f8823d88d05.tar.gz PROJ-f0d766e45640800412c08a7cb9ab4f8823d88d05.zip | |
PROJSJON: add import/export of VerticalCRS, CompoundCRS, BoundCRS, Transformation and ConcatenatedOperation
Diffstat (limited to 'test')
| -rw-r--r-- | test/unit/test_io.cpp | 790 |
1 files changed, 790 insertions, 0 deletions
diff --git a/test/unit/test_io.cpp b/test/unit/test_io.cpp index c993c5e4..d3c4c8ec 100644 --- a/test/unit/test_io.cpp +++ b/test/unit/test_io.cpp @@ -9612,3 +9612,793 @@ TEST(wkt_export, json_import_projected_crs) { ASSERT_TRUE(pcrs != nullptr); EXPECT_EQ(pcrs->exportToJSON((JSONFormatter::create().get())), json); } + +// --------------------------------------------------------------------------- + +TEST(wkt_export, json_import_compound_crs) { + auto json = "{\n" + " \"type\": \"CompoundCRS\",\n" + " \"name\": \"WGS 84 + EGM2008 height\",\n" + " \"components\": [\n" + " {\n" + " \"type\": \"GeographicCRS\",\n" + " \"name\": \"WGS 84\",\n" + " \"datum\": {\n" + " \"type\": \"GeodeticReferenceFrame\",\n" + " \"name\": \"World Geodetic System 1984\",\n" + " \"ellipsoid\": {\n" + " \"name\": \"WGS 84\",\n" + " \"semi_major_axis\": 6378137,\n" + " \"inverse_flattening\": 298.257223563\n" + " }\n" + " },\n" + " \"coordinate_system\": {\n" + " \"subtype\": \"ellipsoidal\",\n" + " \"axis\": [\n" + " {\n" + " \"name\": \"Geodetic latitude\",\n" + " \"abbreviation\": \"Lat\",\n" + " \"direction\": \"north\",\n" + " \"unit\": \"degree\"\n" + " },\n" + " {\n" + " \"name\": \"Geodetic longitude\",\n" + " \"abbreviation\": \"Lon\",\n" + " \"direction\": \"east\",\n" + " \"unit\": \"degree\"\n" + " }\n" + " ]\n" + " },\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 4326\n" + " }\n" + " },\n" + " {\n" + " \"type\": \"VerticalCRS\",\n" + " \"name\": \"EGM2008 height\",\n" + " \"datum\": {\n" + " \"type\": \"VerticalReferenceFrame\",\n" + " \"name\": \"EGM2008 geoid\"\n" + " },\n" + " \"coordinate_system\": {\n" + " \"subtype\": \"vertical\",\n" + " \"axis\": [\n" + " {\n" + " \"name\": \"Gravity-related height\",\n" + " \"abbreviation\": \"H\",\n" + " \"direction\": \"up\",\n" + " \"unit\": \"metre\"\n" + " }\n" + " ]\n" + " },\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 3855\n" + " }\n" + " }\n" + " ]\n" + "}"; + auto obj = createFromUserInput(json, nullptr); + auto compoundCRS = nn_dynamic_pointer_cast<CompoundCRS>(obj); + ASSERT_TRUE(compoundCRS != nullptr); + EXPECT_EQ(compoundCRS->exportToJSON((JSONFormatter::create().get())), json); +} + +// --------------------------------------------------------------------------- + +TEST(wkt_export, json_import_bound_crs) { + auto json = + "{\n" + " \"type\": \"BoundCRS\",\n" + " \"source_crs\": {\n" + " \"type\": \"GeographicCRS\",\n" + " \"name\": \"unknown\",\n" + " \"datum\": {\n" + " \"type\": \"GeodeticReferenceFrame\",\n" + " \"name\": \"Unknown based on GRS80 ellipsoid\",\n" + " \"ellipsoid\": {\n" + " \"name\": \"GRS 1980\",\n" + " \"semi_major_axis\": 6378137,\n" + " \"inverse_flattening\": 298.257222101,\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 7019\n" + " }\n" + " }\n" + " },\n" + " \"coordinate_system\": {\n" + " \"subtype\": \"ellipsoidal\",\n" + " \"axis\": [\n" + " {\n" + " \"name\": \"Longitude\",\n" + " \"abbreviation\": \"lon\",\n" + " \"direction\": \"east\",\n" + " \"unit\": \"degree\"\n" + " },\n" + " {\n" + " \"name\": \"Latitude\",\n" + " \"abbreviation\": \"lat\",\n" + " \"direction\": \"north\",\n" + " \"unit\": \"degree\"\n" + " }\n" + " ]\n" + " }\n" + " },\n" + " \"target_crs\": {\n" + " \"type\": \"GeographicCRS\",\n" + " \"name\": \"WGS 84\",\n" + " \"datum\": {\n" + " \"type\": \"GeodeticReferenceFrame\",\n" + " \"name\": \"World Geodetic System 1984\",\n" + " \"ellipsoid\": {\n" + " \"name\": \"WGS 84\",\n" + " \"semi_major_axis\": 6378137,\n" + " \"inverse_flattening\": 298.257223563\n" + " }\n" + " },\n" + " \"coordinate_system\": {\n" + " \"subtype\": \"ellipsoidal\",\n" + " \"axis\": [\n" + " {\n" + " \"name\": \"Latitude\",\n" + " \"abbreviation\": \"lat\",\n" + " \"direction\": \"north\",\n" + " \"unit\": \"degree\"\n" + " },\n" + " {\n" + " \"name\": \"Longitude\",\n" + " \"abbreviation\": \"lon\",\n" + " \"direction\": \"east\",\n" + " \"unit\": \"degree\"\n" + " }\n" + " ]\n" + " },\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 4326\n" + " }\n" + " },\n" + " \"transformation\": {\n" + " \"name\": \"unknown to WGS84\",\n" + " \"method\": {\n" + " \"name\": \"NTv2\",\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 9615\n" + " }\n" + " },\n" + " \"parameters\": [\n" + " {\n" + " \"name\": \"Latitude and longitude difference file\",\n" + " \"value\": \"@foo\",\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 8656\n" + " }\n" + " }\n" + " ]\n" + " }\n" + "}"; + auto obj = createFromUserInput(json, nullptr); + auto boundCRS = nn_dynamic_pointer_cast<BoundCRS>(obj); + ASSERT_TRUE(boundCRS != nullptr); + EXPECT_EQ(boundCRS->exportToJSON((JSONFormatter::create().get())), json); +} + +// --------------------------------------------------------------------------- + +TEST(wkt_export, json_import_transformation) { + auto json = "{\n" + " \"type\": \"Transformation\",\n" + " \"name\": \"GDA94 to GDA2020 (1)\",\n" + " \"source_crs\": {\n" + " \"type\": \"GeographicCRS\",\n" + " \"name\": \"GDA94\",\n" + " \"datum\": {\n" + " \"type\": \"GeodeticReferenceFrame\",\n" + " \"name\": \"Geocentric Datum of Australia 1994\",\n" + " \"ellipsoid\": {\n" + " \"name\": \"GRS 1980\",\n" + " \"semi_major_axis\": 6378137,\n" + " \"inverse_flattening\": 298.257222101\n" + " }\n" + " },\n" + " \"coordinate_system\": {\n" + " \"subtype\": \"ellipsoidal\",\n" + " \"axis\": [\n" + " {\n" + " \"name\": \"Geodetic latitude\",\n" + " \"abbreviation\": \"Lat\",\n" + " \"direction\": \"north\",\n" + " \"unit\": \"degree\"\n" + " },\n" + " {\n" + " \"name\": \"Geodetic longitude\",\n" + " \"abbreviation\": \"Lon\",\n" + " \"direction\": \"east\",\n" + " \"unit\": \"degree\"\n" + " }\n" + " ]\n" + " }\n" + " },\n" + " \"target_crs\": {\n" + " \"type\": \"GeographicCRS\",\n" + " \"name\": \"GDA2020\",\n" + " \"datum\": {\n" + " \"type\": \"GeodeticReferenceFrame\",\n" + " \"name\": \"Geocentric Datum of Australia 2020\",\n" + " \"ellipsoid\": {\n" + " \"name\": \"GRS 1980\",\n" + " \"semi_major_axis\": 6378137,\n" + " \"inverse_flattening\": 298.257222101\n" + " }\n" + " },\n" + " \"coordinate_system\": {\n" + " \"subtype\": \"ellipsoidal\",\n" + " \"axis\": [\n" + " {\n" + " \"name\": \"Geodetic latitude\",\n" + " \"abbreviation\": \"Lat\",\n" + " \"direction\": \"north\",\n" + " \"unit\": \"degree\"\n" + " },\n" + " {\n" + " \"name\": \"Geodetic longitude\",\n" + " \"abbreviation\": \"Lon\",\n" + " \"direction\": \"east\",\n" + " \"unit\": \"degree\"\n" + " }\n" + " ]\n" + " }\n" + " },\n" + " \"method\": {\n" + " \"name\": \"Coordinate Frame rotation (geog2D domain)\",\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 9607\n" + " }\n" + " },\n" + " \"parameters\": [\n" + " {\n" + " \"name\": \"X-axis translation\",\n" + " \"value\": 61.55,\n" + " \"unit\": {\n" + " \"type\": \"LinearUnit\",\n" + " \"name\": \"millimetre\",\n" + " \"conversion_factor\": 0.001\n" + " },\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 8605\n" + " }\n" + " },\n" + " {\n" + " \"name\": \"Y-axis translation\",\n" + " \"value\": -10.87,\n" + " \"unit\": {\n" + " \"type\": \"LinearUnit\",\n" + " \"name\": \"millimetre\",\n" + " \"conversion_factor\": 0.001\n" + " },\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 8606\n" + " }\n" + " },\n" + " {\n" + " \"name\": \"Z-axis translation\",\n" + " \"value\": -40.19,\n" + " \"unit\": {\n" + " \"type\": \"LinearUnit\",\n" + " \"name\": \"millimetre\",\n" + " \"conversion_factor\": 0.001\n" + " },\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 8607\n" + " }\n" + " },\n" + " {\n" + " \"name\": \"X-axis rotation\",\n" + " \"value\": -39.4924,\n" + " \"unit\": {\n" + " \"type\": \"AngularUnit\",\n" + " \"name\": \"milliarc-second\",\n" + " \"conversion_factor\": 4.84813681109536e-09\n" + " },\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 8608\n" + " }\n" + " },\n" + " {\n" + " \"name\": \"Y-axis rotation\",\n" + " \"value\": -32.7221,\n" + " \"unit\": {\n" + " \"type\": \"AngularUnit\",\n" + " \"name\": \"milliarc-second\",\n" + " \"conversion_factor\": 4.84813681109536e-09\n" + " },\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 8609\n" + " }\n" + " },\n" + " {\n" + " \"name\": \"Z-axis rotation\",\n" + " \"value\": -32.8979,\n" + " \"unit\": {\n" + " \"type\": \"AngularUnit\",\n" + " \"name\": \"milliarc-second\",\n" + " \"conversion_factor\": 4.84813681109536e-09\n" + " },\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 8610\n" + " }\n" + " },\n" + " {\n" + " \"name\": \"Scale difference\",\n" + " \"value\": -9.994,\n" + " \"unit\": {\n" + " \"type\": \"ScaleUnit\",\n" + " \"name\": \"parts per billion\",\n" + " \"conversion_factor\": 1e-09\n" + " },\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 8611\n" + " }\n" + " }\n" + " ],\n" + " \"accuracy\": \"0.01\",\n" + " \"scope\": \"scope\",\n" + " \"area\": \"Australia - GDA\",\n" + " \"bbox\": {\n" + " \"south_latitude\": -60.56,\n" + " \"west_longitude\": 93.41,\n" + " \"north_latitude\": -8.47,\n" + " \"east_longitude\": 173.35\n" + " },\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 8048\n" + " },\n" + " \"remarks\": \"foo\"\n" + "}"; + auto obj = createFromUserInput(json, nullptr); + auto transf = nn_dynamic_pointer_cast<Transformation>(obj); + ASSERT_TRUE(transf != nullptr); + EXPECT_EQ(transf->exportToJSON((JSONFormatter::create().get())), json); +} + +// --------------------------------------------------------------------------- + +TEST(wkt_export, json_import_concatenated_operation) { + auto json = + "{\n" + " \"type\": \"ConcatenatedOperation\",\n" + " \"name\": \"Inverse of Vicgrid + GDA94 to GDA2020 (1)\",\n" + " \"source_crs\": {\n" + " \"type\": \"ProjectedCRS\",\n" + " \"name\": \"GDA94 / Vicgrid\",\n" + " \"base_crs\": {\n" + " \"name\": \"GDA94\",\n" + " \"datum\": {\n" + " \"type\": \"GeodeticReferenceFrame\",\n" + " \"name\": \"Geocentric Datum of Australia 1994\",\n" + " \"ellipsoid\": {\n" + " \"name\": \"GRS 1980\",\n" + " \"semi_major_axis\": 6378137,\n" + " \"inverse_flattening\": 298.257222101\n" + " }\n" + " },\n" + " \"coordinate_system\": {\n" + " \"subtype\": \"ellipsoidal\",\n" + " \"axis\": [\n" + " {\n" + " \"name\": \"Geodetic latitude\",\n" + " \"abbreviation\": \"Lat\",\n" + " \"direction\": \"north\",\n" + " \"unit\": \"degree\"\n" + " },\n" + " {\n" + " \"name\": \"Geodetic longitude\",\n" + " \"abbreviation\": \"Lon\",\n" + " \"direction\": \"east\",\n" + " \"unit\": \"degree\"\n" + " }\n" + " ]\n" + " },\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 4283\n" + " }\n" + " },\n" + " \"conversion\": {\n" + " \"name\": \"Vicgrid\",\n" + " \"method\": {\n" + " \"name\": \"Lambert Conic Conformal (2SP)\",\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 9802\n" + " }\n" + " },\n" + " \"parameters\": [\n" + " {\n" + " \"name\": \"Latitude of false origin\",\n" + " \"value\": -37,\n" + " \"unit\": \"degree\",\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 8821\n" + " }\n" + " },\n" + " {\n" + " \"name\": \"Longitude of false origin\",\n" + " \"value\": 145,\n" + " \"unit\": \"degree\",\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 8822\n" + " }\n" + " },\n" + " {\n" + " \"name\": \"Latitude of 1st standard parallel\",\n" + " \"value\": -36,\n" + " \"unit\": \"degree\",\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 8823\n" + " }\n" + " },\n" + " {\n" + " \"name\": \"Latitude of 2nd standard parallel\",\n" + " \"value\": -38,\n" + " \"unit\": \"degree\",\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 8824\n" + " }\n" + " },\n" + " {\n" + " \"name\": \"Easting at false origin\",\n" + " \"value\": 2500000,\n" + " \"unit\": \"metre\",\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 8826\n" + " }\n" + " },\n" + " {\n" + " \"name\": \"Northing at false origin\",\n" + " \"value\": 2500000,\n" + " \"unit\": \"metre\",\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 8827\n" + " }\n" + " }\n" + " ]\n" + " },\n" + " \"coordinate_system\": {\n" + " \"subtype\": \"Cartesian\",\n" + " \"axis\": [\n" + " {\n" + " \"name\": \"Easting\",\n" + " \"abbreviation\": \"E\",\n" + " \"direction\": \"east\",\n" + " \"unit\": \"metre\"\n" + " },\n" + " {\n" + " \"name\": \"Northing\",\n" + " \"abbreviation\": \"N\",\n" + " \"direction\": \"north\",\n" + " \"unit\": \"metre\"\n" + " }\n" + " ]\n" + " },\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 3111\n" + " }\n" + " },\n" + " \"target_crs\": {\n" + " \"type\": \"GeographicCRS\",\n" + " \"name\": \"GDA2020\",\n" + " \"datum\": {\n" + " \"type\": \"GeodeticReferenceFrame\",\n" + " \"name\": \"Geocentric Datum of Australia 2020\",\n" + " \"ellipsoid\": {\n" + " \"name\": \"GRS 1980\",\n" + " \"semi_major_axis\": 6378137,\n" + " \"inverse_flattening\": 298.257222101\n" + " }\n" + " },\n" + " \"coordinate_system\": {\n" + " \"subtype\": \"ellipsoidal\",\n" + " \"axis\": [\n" + " {\n" + " \"name\": \"Geodetic latitude\",\n" + " \"abbreviation\": \"Lat\",\n" + " \"direction\": \"north\",\n" + " \"unit\": \"degree\"\n" + " },\n" + " {\n" + " \"name\": \"Geodetic longitude\",\n" + " \"abbreviation\": \"Lon\",\n" + " \"direction\": \"east\",\n" + " \"unit\": \"degree\"\n" + " }\n" + " ]\n" + " },\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 7844\n" + " }\n" + " },\n" + " \"steps\": [\n" + " {\n" + " \"type\": \"Conversion\",\n" + " \"name\": \"Inverse of Vicgrid\",\n" + " \"method\": {\n" + " \"name\": \"Inverse of Lambert Conic Conformal (2SP)\",\n" + " \"id\": {\n" + " \"authority\": \"INVERSE(EPSG)\",\n" + " \"code\": 9802\n" + " }\n" + " },\n" + " \"parameters\": [\n" + " {\n" + " \"name\": \"Latitude of false origin\",\n" + " \"value\": -37,\n" + " \"unit\": \"degree\",\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 8821\n" + " }\n" + " },\n" + " {\n" + " \"name\": \"Longitude of false origin\",\n" + " \"value\": 145,\n" + " \"unit\": \"degree\",\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 8822\n" + " }\n" + " },\n" + " {\n" + " \"name\": \"Latitude of 1st standard parallel\",\n" + " \"value\": -36,\n" + " \"unit\": \"degree\",\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 8823\n" + " }\n" + " },\n" + " {\n" + " \"name\": \"Latitude of 2nd standard parallel\",\n" + " \"value\": -38,\n" + " \"unit\": \"degree\",\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 8824\n" + " }\n" + " },\n" + " {\n" + " \"name\": \"Easting at false origin\",\n" + " \"value\": 2500000,\n" + " \"unit\": \"metre\",\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 8826\n" + " }\n" + " },\n" + " {\n" + " \"name\": \"Northing at false origin\",\n" + " \"value\": 2500000,\n" + " \"unit\": \"metre\",\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 8827\n" + " }\n" + " }\n" + " ],\n" + " \"id\": {\n" + " \"authority\": \"INVERSE(EPSG)\",\n" + " \"code\": 17361\n" + " }\n" + " },\n" + " {\n" + " \"type\": \"Transformation\",\n" + " \"name\": \"GDA94 to GDA2020 (1)\",\n" + " \"source_crs\": {\n" + " \"type\": \"GeographicCRS\",\n" + " \"name\": \"GDA94\",\n" + " \"datum\": {\n" + " \"type\": \"GeodeticReferenceFrame\",\n" + " \"name\": \"Geocentric Datum of Australia 1994\",\n" + " \"ellipsoid\": {\n" + " \"name\": \"GRS 1980\",\n" + " \"semi_major_axis\": 6378137,\n" + " \"inverse_flattening\": 298.257222101\n" + " }\n" + " },\n" + " \"coordinate_system\": {\n" + " \"subtype\": \"ellipsoidal\",\n" + " \"axis\": [\n" + " {\n" + " \"name\": \"Geodetic latitude\",\n" + " \"abbreviation\": \"Lat\",\n" + " \"direction\": \"north\",\n" + " \"unit\": \"degree\"\n" + " },\n" + " {\n" + " \"name\": \"Geodetic longitude\",\n" + " \"abbreviation\": \"Lon\",\n" + " \"direction\": \"east\",\n" + " \"unit\": \"degree\"\n" + " }\n" + " ]\n" + " },\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 4283\n" + " }\n" + " },\n" + " \"target_crs\": {\n" + " \"type\": \"GeographicCRS\",\n" + " \"name\": \"GDA2020\",\n" + " \"datum\": {\n" + " \"type\": \"GeodeticReferenceFrame\",\n" + " \"name\": \"Geocentric Datum of Australia 2020\",\n" + " \"ellipsoid\": {\n" + " \"name\": \"GRS 1980\",\n" + " \"semi_major_axis\": 6378137,\n" + " \"inverse_flattening\": 298.257222101\n" + " }\n" + " },\n" + " \"coordinate_system\": {\n" + " \"subtype\": \"ellipsoidal\",\n" + " \"axis\": [\n" + " {\n" + " \"name\": \"Geodetic latitude\",\n" + " \"abbreviation\": \"Lat\",\n" + " \"direction\": \"north\",\n" + " \"unit\": \"degree\"\n" + " },\n" + " {\n" + " \"name\": \"Geodetic longitude\",\n" + " \"abbreviation\": \"Lon\",\n" + " \"direction\": \"east\",\n" + " \"unit\": \"degree\"\n" + " }\n" + " ]\n" + " },\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 7844\n" + " }\n" + " },\n" + " \"method\": {\n" + " \"name\": \"Coordinate Frame rotation (geog2D domain)\",\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 9607\n" + " }\n" + " },\n" + " \"parameters\": [\n" + " {\n" + " \"name\": \"X-axis translation\",\n" + " \"value\": 61.55,\n" + " \"unit\": {\n" + " \"type\": \"LinearUnit\",\n" + " \"name\": \"millimetre\",\n" + " \"conversion_factor\": 0.001\n" + " },\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 8605\n" + " }\n" + " },\n" + " {\n" + " \"name\": \"Y-axis translation\",\n" + " \"value\": -10.87,\n" + " \"unit\": {\n" + " \"type\": \"LinearUnit\",\n" + " \"name\": \"millimetre\",\n" + " \"conversion_factor\": 0.001\n" + " },\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 8606\n" + " }\n" + " },\n" + " {\n" + " \"name\": \"Z-axis translation\",\n" + " \"value\": -40.19,\n" + " \"unit\": {\n" + " \"type\": \"LinearUnit\",\n" + " \"name\": \"millimetre\",\n" + " \"conversion_factor\": 0.001\n" + " },\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 8607\n" + " }\n" + " },\n" + " {\n" + " \"name\": \"X-axis rotation\",\n" + " \"value\": -39.4924,\n" + " \"unit\": {\n" + " \"type\": \"AngularUnit\",\n" + " \"name\": \"milliarc-second\",\n" + " \"conversion_factor\": 4.84813681109536e-09\n" + " },\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 8608\n" + " }\n" + " },\n" + " {\n" + " \"name\": \"Y-axis rotation\",\n" + " \"value\": -32.7221,\n" + " \"unit\": {\n" + " \"type\": \"AngularUnit\",\n" + " \"name\": \"milliarc-second\",\n" + " \"conversion_factor\": 4.84813681109536e-09\n" + " },\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 8609\n" + " }\n" + " },\n" + " {\n" + " \"name\": \"Z-axis rotation\",\n" + " \"value\": -32.8979,\n" + " \"unit\": {\n" + " \"type\": \"AngularUnit\",\n" + " \"name\": \"milliarc-second\",\n" + " \"conversion_factor\": 4.84813681109536e-09\n" + " },\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 8610\n" + " }\n" + " },\n" + " {\n" + " \"name\": \"Scale difference\",\n" + " \"value\": -9.994,\n" + " \"unit\": {\n" + " \"type\": \"ScaleUnit\",\n" + " \"name\": \"parts per billion\",\n" + " \"conversion_factor\": 1e-09\n" + " },\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 8611\n" + " }\n" + " }\n" + " ],\n" + " \"accuracy\": \"0.01\",\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 8048\n" + " },\n" + " \"remarks\": \"remarks\"\n" + " }\n" + " ],\n" + " \"area\": \"Australia - GDA\",\n" + " \"bbox\": {\n" + " \"south_latitude\": -60.56,\n" + " \"west_longitude\": 93.41,\n" + " \"north_latitude\": -8.47,\n" + " \"east_longitude\": 173.35\n" + " }\n" + "}"; + auto obj = createFromUserInput(json, nullptr); + auto concat = nn_dynamic_pointer_cast<ConcatenatedOperation>(obj); + ASSERT_TRUE(concat != nullptr); + EXPECT_EQ(concat->exportToJSON((JSONFormatter::create().get())), json); +} |
