aboutsummaryrefslogtreecommitdiff
path: root/test/unit
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2020-09-24 22:41:59 +0200
committerEven Rouault <even.rouault@spatialys.com>2020-10-06 23:48:52 +0200
commita9b6f39494e6dab0ea02af9d82e7b3d570f5422f (patch)
tree8fc2fba9511877d81a2270238e40f7fa19e03ba0 /test/unit
parent7cec30b85ece4bca206f27642ee9aeb2807f5aba (diff)
downloadPROJ-a9b6f39494e6dab0ea02af9d82e7b3d570f5422f.tar.gz
PROJ-a9b6f39494e6dab0ea02af9d82e7b3d570f5422f.zip
Database: "minimal" update to EPSG v10.003
Content mostly unchanged since v9.9 This update is "minimal" in that it mostly reflects the removal of the 'area' table, replaced now by 'extent', 'scope' and 'usage' Other new aspects of EPSG v10 are left aside.
Diffstat (limited to 'test/unit')
-rw-r--r--test/unit/test_c_api.cpp7
-rw-r--r--test/unit/test_factory.cpp343
2 files changed, 249 insertions, 101 deletions
diff --git a/test/unit/test_c_api.cpp b/test/unit/test_c_api.cpp
index 564833db..5c0ac699 100644
--- a/test/unit/test_c_api.cpp
+++ b/test/unit/test_c_api.cpp
@@ -3792,8 +3792,8 @@ TEST_F(CApi, proj_get_scope) {
auto scope = proj_get_scope(co);
ASSERT_NE(scope, nullptr);
EXPECT_EQ(scope,
- std::string("Conformal transformation of GDA94 coordinates "
- "that have been derived through GNSS CORS."));
+ std::string("Transformation of GDA94 coordinates that have "
+ "been derived through GNSS CORS."));
}
// Conversion
@@ -3807,8 +3807,7 @@ TEST_F(CApi, proj_get_scope) {
auto scope = proj_get_scope(co);
ASSERT_NE(scope, nullptr);
EXPECT_EQ(scope,
- std::string("Large and medium scale topographic mapping "
- "and engineering survey."));
+ std::string("Engineering survey, topographic mapping."));
}
{
diff --git a/test/unit/test_factory.cpp b/test/unit/test_factory.cpp
index c34723f2..8881402c 100644
--- a/test/unit/test_factory.cpp
+++ b/test/unit/test_factory.cpp
@@ -835,14 +835,14 @@ TEST(factory, AuthorityFactory_createCoordinateOperation_helmert_15_CF) {
" ID[\"EPSG\",1047]],\n"
" OPERATIONACCURACY[0.03],\n"
" USAGE[\n"
- " SCOPE[\"Geodesy. RMS residuals 5mm north, 8mm east and 28mm "
- "vertical, maximum residuals 10mm north, 13mm east and 51mm "
- "vertical.\"],\n"
+ " SCOPE[\"Geodesy.\"],\n"
" AREA[\"Australia - onshore and EEZ\"],\n"
" BBOX[-47.2,109.23,-8.88,163.2]],\n"
" ID[\"EPSG\",6276],\n"
- " REMARK[\"Scale difference in ppb and scale difference rate in "
- "ppb/yr where 1/billion = 1E-9 or nm/m.\"]]";
+ " REMARK[\"RMS residuals 5mm north, 8mm east and 28mm vertical, "
+ "maximum residuals 10mm north, 13mm east and 51mm vertical. Scale "
+ "difference in ppb and scale difference rate in ppb/yr where "
+ "1/billion = 1E-9 or nm/m.\"]]";
EXPECT_EQ(
op->exportToWKT(
@@ -943,12 +943,12 @@ TEST(
"file\",\"RGNC1991_NEA74Noumea.gsb\"],\n"
" OPERATIONACCURACY[0.05],\n"
" USAGE[\n"
- " SCOPE[\"Accuracy 5-10cm.\"],\n"
+ " SCOPE[\"Geodesy.\"],\n"
" AREA[\"New Caledonia - Grande Terre - Noumea\"],\n"
" BBOX[-22.37,166.35,-22.19,166.54]],\n"
" ID[\"EPSG\",1295],\n"
" REMARK[\"Emulation using NTv2 method of tfm NEA74 Noumea to "
- "RGNC91-93 (3) (code 9328). Note reversal of sign of parameter values "
+ "RGNC91-93 (3) (code 15943). Note reversal of sign of parameter values "
"in grid file.\"]]";
EXPECT_EQ(
op->exportToWKT(
@@ -1415,11 +1415,14 @@ class FactoryWithTmpDatabase : public ::testing::Test {
"0);"))
<< last_error();
ASSERT_TRUE(
- execute("INSERT INTO area "
+ execute("INSERT INTO extent "
"VALUES('EPSG','1262','World','World.',-90.0,90.0,-180."
"0,180.0,0);"))
<< last_error();
ASSERT_TRUE(
+ execute("INSERT INTO scope VALUES('EPSG','1024','Not known.',0);"))
+ << last_error();
+ ASSERT_TRUE(
execute("INSERT INTO prime_meridian "
"VALUES('EPSG','8901','Greenwich',0.0,'EPSG','9102',0);"))
<< last_error();
@@ -1434,12 +1437,20 @@ class FactoryWithTmpDatabase : public ::testing::Test {
<< last_error();
ASSERT_TRUE(
execute("INSERT INTO geodetic_datum "
- "VALUES('EPSG','6326','World Geodetic System 1984','',NULL,"
- "'EPSG','7030','EPSG','8901','EPSG','1262',NULL,0);"))
+ "VALUES('EPSG','6326','World Geodetic System 1984','',"
+ "'EPSG','7030','EPSG','8901',NULL,0);"))
+ << last_error();
+ ASSERT_TRUE(execute("INSERT INTO usage VALUES('EPSG',"
+ "'geodetic_datum_6326_usage','geodetic_datum',"
+ "'EPSG','6326','EPSG','1262','EPSG','1024');"))
<< last_error();
ASSERT_TRUE(
execute("INSERT INTO vertical_datum VALUES('EPSG','1027','EGM2008 "
- "geoid',NULL,NULL,'EPSG','1262',NULL,0);"))
+ "geoid',NULL,NULL,0);"))
+ << last_error();
+ ASSERT_TRUE(execute("INSERT INTO usage VALUES('EPSG',"
+ "'vertical_datum_1027_usage','vertical_datum',"
+ "'EPSG','1027','EPSG','1262','EPSG','1024');"))
<< last_error();
ASSERT_TRUE(execute("INSERT INTO coordinate_system "
"VALUES('EPSG','6422','ellipsoidal',2);"))
@@ -1454,8 +1465,12 @@ class FactoryWithTmpDatabase : public ::testing::Test {
<< last_error();
ASSERT_TRUE(
execute("INSERT INTO geodetic_crs VALUES('EPSG','4326','WGS "
- "84',NULL,NULL,'geographic "
- "2D','EPSG','6422','EPSG','6326','EPSG','1262',NULL,0);"))
+ "84',NULL,'geographic "
+ "2D','EPSG','6422','EPSG','6326',NULL,0);"))
+ << last_error();
+ ASSERT_TRUE(execute("INSERT INTO usage VALUES('EPSG',"
+ "'geodetic_crs4326_usage','geodetic_crs',"
+ "'EPSG','4326','EPSG','1262','EPSG','1024');"))
<< last_error();
ASSERT_TRUE(execute("INSERT INTO coordinate_system "
@@ -1467,8 +1482,11 @@ class FactoryWithTmpDatabase : public ::testing::Test {
<< last_error();
ASSERT_TRUE(
execute("INSERT INTO vertical_crs VALUES('EPSG','3855','EGM2008 "
- "height',NULL,NULL,'EPSG','6499','EPSG','1027','EPSG',"
- "'1262',0);"))
+ "height',NULL,'EPSG','6499','EPSG','1027',0);"))
+ << last_error();
+ ASSERT_TRUE(execute("INSERT INTO usage VALUES('EPSG',"
+ "'vertical_crs3855_usage','vertical_crs',"
+ "'EPSG','3855','EPSG','1262','EPSG','1024');"))
<< last_error();
ASSERT_TRUE(execute("INSERT INTO unit_of_measure "
@@ -1477,13 +1495,13 @@ class FactoryWithTmpDatabase : public ::testing::Test {
<< last_error();
ASSERT_TRUE(execute(
- "INSERT INTO area VALUES('EPSG','1933','World - N hemisphere - "
+ "INSERT INTO extent VALUES('EPSG','1933','World - N hemisphere - "
"0°E to 6°E','',0.0,84.0,0.0,6.0,0);"))
<< last_error();
ASSERT_TRUE(execute(
"INSERT INTO conversion VALUES('EPSG','16031','UTM zone "
- "31N',NULL,NULL,'EPSG','1933','EPSG','9807','Transverse "
+ "31N',NULL,'EPSG','9807','Transverse "
"Mercator','EPSG','8801','Latitude "
"of "
"natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of "
@@ -1495,9 +1513,13 @@ class FactoryWithTmpDatabase : public ::testing::Test {
"NULL,"
"NULL,NULL,NULL,NULL,0);"))
<< last_error();
+ ASSERT_TRUE(execute("INSERT INTO usage VALUES('EPSG',"
+ "'conversion16031_usage','conversion',"
+ "'EPSG','16031','EPSG','1933','EPSG','1024');"))
+ << last_error();
ASSERT_TRUE(execute(
- "INSERT INTO area VALUES('EPSG','2060','World - N hemisphere - "
+ "INSERT INTO extent VALUES('EPSG','2060','World - N hemisphere - "
"0°E to 6°E - by country','',0.0,84.0,0.0,6.0,0);"))
<< last_error();
@@ -1517,36 +1539,56 @@ class FactoryWithTmpDatabase : public ::testing::Test {
ASSERT_TRUE(execute("INSERT INTO projected_crs "
"VALUES('EPSG','32631','WGS 84 / UTM zone "
- "31N',NULL,NULL,'EPSG','4400','EPSG','4326',"
- "'EPSG','16031','"
- "EPSG','2060',NULL,0);"))
+ "31N',NULL,'EPSG','4400','EPSG','4326',"
+ "'EPSG','16031',NULL,0);"))
+ << last_error();
+ ASSERT_TRUE(execute("INSERT INTO usage VALUES('EPSG',"
+ "'projected_crs32631_usage','projected_crs',"
+ "'EPSG','32631','EPSG','2060','EPSG','1024');"))
<< last_error();
ASSERT_TRUE(execute(
"INSERT INTO compound_crs VALUES('EPSG','MY_COMPOUND','WGS 84 + "
- "EGM2008 geoid height',NULL,NULL,'EPSG','4326','EPSG','3855',"
- "'EPSG','1262',0);"))
+ "EGM2008 geoid height',NULL,'EPSG','4326','EPSG','3855',0);"))
+ << last_error();
+ ASSERT_TRUE(
+ execute("INSERT INTO usage VALUES('EPSG',"
+ "'compound_crsMY_COMPOUND_usage','compound_crs',"
+ "'EPSG','MY_COMPOUND','EPSG','1262','EPSG','1024');"))
<< last_error();
ASSERT_TRUE(execute(
"INSERT INTO helmert_transformation "
- "VALUES('EPSG','DUMMY_HELMERT','name',NULL,NULL,'EPSG','9603','"
+ "VALUES('EPSG','DUMMY_HELMERT','name',NULL,'EPSG','9603','"
"Geocentric translations (geog2D domain)','EPSG','4326',"
- "'EPSG','4326','EPSG','1262',44.0,-143."
+ "'EPSG','4326',44.0,-143."
"0,-90.0,-294.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,"
"NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,"
"NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);"))
<< last_error();
+ ASSERT_TRUE(
+ execute("INSERT INTO usage VALUES('EPSG',"
+ "'helmert_transformation_DUMMY_HELMERT_usage',"
+ "'helmert_transformation',"
+ "'EPSG','DUMMY_HELMERT','EPSG','1262','EPSG','1024');"))
+ << last_error();
ASSERT_TRUE(execute(
"INSERT INTO grid_transformation "
- "VALUES('EPSG','DUMMY_GRID_TRANSFORMATION','name',NULL,NULL,"
+ "VALUES('EPSG','DUMMY_GRID_TRANSFORMATION','name',NULL,"
"'EPSG','9615'"
- ",'NTv2','EPSG','4326','EPSG','4326','EPSG','1262',1.0,'EPSG','"
+ ",'NTv2','EPSG','4326','EPSG','4326',1.0,'EPSG','"
"8656','Latitude and longitude difference "
"file','nzgd2kgrid0005.gsb',NULL,NULL,NULL,NULL,NULL,NULL,NULL,"
"0);"))
<< last_error();
+ ASSERT_TRUE(
+ execute("INSERT INTO usage VALUES('EPSG',"
+ "'grid_transformation_DUMMY_GRID_TRANSFORMATION_usage',"
+ "'grid_transformation',"
+ "'EPSG','DUMMY_GRID_TRANSFORMATION',"
+ "'EPSG','1262','EPSG','1024');"))
+ << last_error();
ASSERT_TRUE(execute(
"INSERT INTO unit_of_measure VALUES('EPSG','9110','sexagesimal "
@@ -1555,21 +1597,33 @@ class FactoryWithTmpDatabase : public ::testing::Test {
ASSERT_TRUE(execute(
"INSERT INTO other_transformation "
- "VALUES('EPSG','DUMMY_OTHER_TRANSFORMATION','name',NULL,NULL,"
+ "VALUES('EPSG','DUMMY_OTHER_TRANSFORMATION','name',NULL,"
"'EPSG','9601','Longitude rotation',"
- "'EPSG','4326','EPSG','4326','EPSG','1262',0.0,'EPSG'"
+ "'EPSG','4326','EPSG','4326',0.0,'EPSG'"
",'8602','Longitude "
"offset',-17.4,'EPSG','9110',NULL,NULL,NULL,NULL,NULL,NULL,"
"NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,"
"NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,"
"NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);"))
<< last_error();
-
ASSERT_TRUE(
- execute("INSERT INTO concatenated_operation "
- "VALUES('EPSG','DUMMY_CONCATENATED','name',NULL,NULL,"
- "'EPSG','4326','EPSG'"
- ",'4326','EPSG','1262',NULL,NULL,0);"))
+ execute("INSERT INTO usage VALUES('EPSG',"
+ "'other_transformation_DUMMY_OTHER_TRANSFORMATION_usage',"
+ "'other_transformation',"
+ "'EPSG','DUMMY_OTHER_TRANSFORMATION',"
+ "'EPSG','1262','EPSG','1024');"))
+ << last_error();
+
+ ASSERT_TRUE(execute("INSERT INTO concatenated_operation "
+ "VALUES('EPSG','DUMMY_CONCATENATED','name',NULL,"
+ "'EPSG','4326','EPSG'"
+ ",'4326',NULL,NULL,0);"))
+ << last_error();
+ ASSERT_TRUE(execute("INSERT INTO usage VALUES('EPSG',"
+ "'concatenated_operation_DUMMY_CONCATENATED_usage',"
+ "'concatenated_operation',"
+ "'EPSG','DUMMY_CONCATENATED',"
+ "'EPSG','1262','EPSG','1024');"))
<< last_error();
ASSERT_TRUE(execute("INSERT INTO concatenated_operation_step "
@@ -1587,20 +1641,35 @@ class FactoryWithTmpDatabase : public ::testing::Test {
const auto vals = std::vector<std::string>{"SOURCE", "TARGET", "PIVOT"};
for (const auto &val : vals) {
- ASSERT_TRUE(
- execute("INSERT INTO geodetic_datum "
- "VALUES('FOO','" +
- val + "','" + val +
- "','',NULL,"
- "'EPSG','7030','EPSG','8901','EPSG','1262',NULL,0);"))
+ ASSERT_TRUE(execute("INSERT INTO geodetic_datum "
+ "VALUES('FOO','" +
+ val + "','" + val +
+ "','',"
+ "'EPSG','7030','EPSG','8901',NULL,0);"))
+ << last_error();
+ ASSERT_TRUE(execute("INSERT INTO usage VALUES('FOO',"
+ "'geodetic_datum_" +
+ val + "_usage',"
+ "'geodetic_datum',"
+ "'FOO','" +
+ val + "',"
+ "'EPSG','1262','EPSG','1024');"))
<< last_error();
+
ASSERT_TRUE(execute("INSERT INTO geodetic_crs "
"VALUES('NS_" +
val + "','" + val + "','" + val +
- "',NULL,NULL,'geographic 2D','EPSG','6422',"
+ "',NULL,'geographic 2D','EPSG','6422',"
"'FOO','" +
- val + "',"
- "'EPSG','1262',NULL,0);"))
+ val + "',NULL,0);"))
+ << last_error();
+ ASSERT_TRUE(execute("INSERT INTO usage VALUES('FOO',"
+ "'geodetic_crs_" +
+ val + "_usage',"
+ "'geodetic_crs',"
+ "'NS_" +
+ val + "','" + val +
+ "','EPSG','1262','EPSG','1024');"))
<< last_error();
}
}
@@ -1612,14 +1681,21 @@ class FactoryWithTmpDatabase : public ::testing::Test {
"INSERT INTO helmert_transformation "
"VALUES('OTHER','" +
src + "_" + dst + "','Transformation from " + src + " to " + dst +
- "',NULL,NULL,'EPSG','9603','"
+ "',NULL,'EPSG','9603','"
"Geocentric translations (geog2D domain)','NS_" +
src + "','" + src + "','NS_" + dst + "','" + dst +
- "','EPSG'"
- ",'1262',1.0,0,0,0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,"
+ "',1.0,0,0,0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,"
"NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,"
"NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);"))
<< last_error();
+ ASSERT_TRUE(execute("INSERT INTO usage VALUES('OTHER',"
+ "'helmert_transformation" +
+ src + '_' + dst + "_usage',"
+ "'helmert_transformation',"
+ "'OTHER','" +
+ src + "_" + dst + "',"
+ "'EPSG','1262','EPSG','1024');"))
+ << last_error();
}
void checkSourceToOther() {
@@ -1886,14 +1962,22 @@ TEST_F(FactoryWithTmpDatabase,
ASSERT_TRUE(
execute("INSERT INTO geodetic_crs VALUES('OTHER','OTHER_4326','WGS "
- "84',NULL,NULL,'geographic "
- "2D','EPSG','6422','EPSG','6326','EPSG','1262',NULL,0);"))
+ "84',NULL,'geographic "
+ "2D','EPSG','6422','EPSG','6326',NULL,0);"))
+ << last_error();
+ ASSERT_TRUE(execute("INSERT INTO usage VALUES('OTHER',"
+ "'geodetic_crs_OTHER_4326_usage','geodetic_crs',"
+ "'OTHER','OTHER_4326','EPSG','1262','EPSG','1024');"))
<< last_error();
ASSERT_TRUE(execute("INSERT INTO projected_crs "
"VALUES('OTHER','OTHER_32631','WGS 84 / UTM zone "
- "31N',NULL,NULL,'EPSG','4400','OTHER','OTHER_4326',"
- "'EPSG','16031','EPSG','2060',NULL,0);"))
+ "31N',NULL,'EPSG','4400','OTHER','OTHER_4326',"
+ "'EPSG','16031',NULL,0);"))
+ << last_error();
+ ASSERT_TRUE(execute("INSERT INTO usage VALUES('OTHER',"
+ "'projected_crs_OTHER_32631_usage','projected_crs',"
+ "'OTHER','OTHER_32631','EPSG','2060','EPSG','1024');"))
<< last_error();
auto factoryGeneral = AuthorityFactory::create(
@@ -1924,12 +2008,19 @@ TEST_F(FactoryWithTmpDatabase,
ASSERT_TRUE(execute(
"INSERT INTO grid_transformation "
- "VALUES('OTHER','OTHER_GRID_TRANSFORMATION','name',NULL,NULL,"
+ "VALUES('OTHER','OTHER_GRID_TRANSFORMATION','name',NULL,"
"'EPSG','9615'"
- ",'NTv2','EPSG','4326','OTHER','OTHER_4326','EPSG','1262',1.0,'EPSG','"
+ ",'NTv2','EPSG','4326','OTHER','OTHER_4326',1.0,'EPSG','"
"8656','Latitude and longitude difference "
"file','nzgd2kgrid0005.gsb',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);"))
<< last_error();
+ ASSERT_TRUE(execute(
+ "INSERT INTO usage VALUES('OTHER',"
+ "'grid_transformation_OTHER_GRID_TRANSFORMATION_usage',"
+ "'grid_transformation',"
+ "'OTHER','OTHER_GRID_TRANSFORMATION','EPSG','1262','EPSG','1024');"))
+ << last_error();
+
{
auto res = factoryGeneral->createFromCoordinateReferenceSystemCodes(
"EPSG", "4326", "OTHER", "OTHER_4326", false, false, false, false);
@@ -1956,41 +2047,67 @@ TEST_F(FactoryWithTmpDatabase,
ASSERT_TRUE(execute(
"INSERT INTO grid_transformation "
- "VALUES('OTHER','TRANSFORMATION_10M','TRANSFORMATION_10M',NULL,NULL,"
+ "VALUES('OTHER','TRANSFORMATION_10M','TRANSFORMATION_10M',NULL,"
"'EPSG','9615'"
- ",'NTv2','EPSG','4326','EPSG','4326','EPSG','1262',10.0,'EPSG','"
+ ",'NTv2','EPSG','4326','EPSG','4326',10.0,'EPSG','"
"8656','Latitude and longitude difference "
"file','nzgd2kgrid0005.gsb',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);"))
<< last_error();
+ ASSERT_TRUE(
+ execute("INSERT INTO usage VALUES('OTHER',"
+ "'grid_transformation_TTRANSFORMATION_10M_usage',"
+ "'grid_transformation',"
+ "'OTHER','TRANSFORMATION_10M','EPSG','1262','EPSG','1024');"))
+ << last_error();
ASSERT_TRUE(
execute("INSERT INTO grid_transformation "
"VALUES('OTHER','TRANSFORMATION_1M_SMALL_EXTENT','"
- "TRANSFORMATION_1M_SMALL_EXTENT',NULL,NULL,'EPSG','9615'"
- ",'NTv2','EPSG','4326','EPSG','4326','EPSG','2060',1.0,'EPSG','"
+ "TRANSFORMATION_1M_SMALL_EXTENT',NULL,'EPSG','9615'"
+ ",'NTv2','EPSG','4326','EPSG','4326',1.0,'EPSG','"
"8656','Latitude and longitude difference "
"file','nzgd2kgrid0005.gsb',NULL,NULL,NULL,NULL,NULL,NULL,"
"NULL,0);"))
<< last_error();
+ ASSERT_TRUE(
+ execute("INSERT INTO usage VALUES('OTHER',"
+ "'grid_transformation_TRANSFORMATION_1M_SMALL_EXTENT_usage',"
+ "'grid_transformation',"
+ "'OTHER','TRANSFORMATION_1M_SMALL_EXTENT',"
+ "'EPSG','2060','EPSG','1024');"))
+ << last_error();
ASSERT_TRUE(execute(
"INSERT INTO grid_transformation "
- "VALUES('OTHER','TRANSFORMATION_1M','TRANSFORMATION_1M',NULL,NULL,"
+ "VALUES('OTHER','TRANSFORMATION_1M','TRANSFORMATION_1M',NULL,"
"'EPSG','9615'"
- ",'NTv2','EPSG','4326','EPSG','4326','EPSG','1262',1.0,'EPSG','"
+ ",'NTv2','EPSG','4326','EPSG','4326',1.0,'EPSG','"
"8656','Latitude and longitude difference "
"file','nzgd2kgrid0005.gsb',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);"))
<< last_error();
+ ASSERT_TRUE(
+ execute("INSERT INTO usage VALUES('OTHER',"
+ "'grid_transformation_TRANSFORMATION_1M_usage',"
+ "'grid_transformation',"
+ "'OTHER','TRANSFORMATION_1M','EPSG','1262','EPSG','1024');"))
+ << last_error();
ASSERT_TRUE(
execute("INSERT INTO grid_transformation "
"VALUES('OTHER','TRANSFORMATION_0.5M_DEPRECATED','"
- "TRANSFORMATION_0.5M_DEPRECATED',NULL,NULL,'EPSG','9615'"
- ",'NTv2','EPSG','4326','EPSG','4326','EPSG','1262',1.0,'EPSG','"
+ "TRANSFORMATION_0.5M_DEPRECATED',NULL,'EPSG','9615'"
+ ",'NTv2','EPSG','4326','EPSG','4326',1.0,'EPSG','"
"8656','Latitude and longitude difference "
"file','nzgd2kgrid0005.gsb',NULL,NULL,NULL,NULL,NULL,NULL,"
"NULL,1);"))
<< last_error();
+ ASSERT_TRUE(
+ execute("INSERT INTO usage VALUES('OTHER',"
+ "'grid_transformation_TRANSFORMATION_0.5M_DEPRECATED_usage',"
+ "'grid_transformation',"
+ "'OTHER','TRANSFORMATION_0.5M_DEPRECATED',"
+ "'EPSG','1262','EPSG','1024');"))
+ << last_error();
auto factoryOTHER =
AuthorityFactory::create(DatabaseContext::create(m_ctxt), "OTHER");
@@ -2086,14 +2203,20 @@ TEST_F(FactoryWithTmpDatabase, AuthorityFactory_proj_based_transformation) {
ASSERT_TRUE(execute(
"INSERT INTO other_transformation "
- "VALUES('OTHER','FOO','My PROJ string based op',NULL,NULL,'PROJ',"
+ "VALUES('OTHER','FOO','My PROJ string based op',NULL,'PROJ',"
"'PROJString','+proj=pipeline +ellps=WGS84 +step +proj=longlat',"
- "'EPSG','4326','EPSG','4326','EPSG','1262',0.0,NULL,NULL,NULL,"
+ "'EPSG','4326','EPSG','4326',0.0,NULL,NULL,NULL,"
"NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,"
"NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,"
"NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,"
"NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);"))
<< last_error();
+ ASSERT_TRUE(execute("INSERT INTO usage VALUES('OTHER',"
+ "'other_transformation_FOO_usage',"
+ "'other_transformation',"
+ "'OTHER','FOO',"
+ "'EPSG','1262','EPSG','1024');"))
+ << last_error();
auto factoryOTHER =
AuthorityFactory::create(DatabaseContext::create(m_ctxt), "OTHER");
@@ -2145,16 +2268,22 @@ TEST_F(FactoryWithTmpDatabase, AuthorityFactory_wkt_based_transformation) {
ASSERT_TRUE(
execute("INSERT INTO other_transformation "
- "VALUES('OTHER','FOO','My WKT string based op',NULL,NULL,"
+ "VALUES('OTHER','FOO','My WKT string based op',NULL,"
"'PROJ','WKT','" +
std::string(wkt) +
"',"
- "'EPSG','4326','EPSG','4326','EPSG','1262',0.0,NULL,NULL,NULL,"
+ "'EPSG','4326','EPSG','4326',0.0,NULL,NULL,NULL,"
"NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,"
"NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,"
"NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,"
"NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);"))
<< last_error();
+ ASSERT_TRUE(execute("INSERT INTO usage VALUES('OTHER',"
+ "'other_transformation_FOO_usage',"
+ "'other_transformation',"
+ "'OTHER','FOO',"
+ "'EPSG','1262','EPSG','1024');"))
+ << last_error();
auto factoryOTHER =
AuthorityFactory::create(DatabaseContext::create(m_ctxt), "OTHER");
@@ -2180,16 +2309,22 @@ TEST_F(FactoryWithTmpDatabase,
ASSERT_TRUE(
execute("INSERT INTO other_transformation "
- "VALUES('OTHER','FOO','My WKT string based op',NULL,NULL,"
+ "VALUES('OTHER','FOO','My WKT string based op',NULL,"
"'PROJ','WKT','" +
std::string("invalid_wkt") +
"',"
- "'EPSG','4326','EPSG','4326','EPSG','1262',0.0,NULL,NULL,NULL,"
+ "'EPSG','4326','EPSG','4326',0.0,NULL,NULL,NULL,"
"NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,"
"NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,"
"NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,"
"NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);"))
<< last_error();
+ ASSERT_TRUE(execute("INSERT INTO usage VALUES('OTHER',"
+ "'other_transformation_FOO_usage',"
+ "'other_transformation',"
+ "'OTHER','FOO',"
+ "'EPSG','1262','EPSG','1024');"))
+ << last_error();
auto factoryOTHER =
AuthorityFactory::create(DatabaseContext::create(m_ctxt), "OTHER");
@@ -2208,16 +2343,22 @@ TEST_F(FactoryWithTmpDatabase,
ASSERT_TRUE(
execute("INSERT INTO other_transformation "
- "VALUES('OTHER','FOO','My WKT string based op',NULL,NULL,"
+ "VALUES('OTHER','FOO','My WKT string based op',NULL,"
"'PROJ','WKT','" +
std::string("LOCAL_CS[\"foo\"]") +
"',"
- "'EPSG','4326','EPSG','4326','EPSG','1262',0.0,NULL,NULL,NULL,"
+ "'EPSG','4326','EPSG','4326',0.0,NULL,NULL,NULL,"
"NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,"
"NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,"
"NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,"
"NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);"))
<< last_error();
+ ASSERT_TRUE(execute("INSERT INTO usage VALUES('OTHER',"
+ "'other_transformation_FOO_usage',"
+ "'other_transformation',"
+ "'OTHER','FOO',"
+ "'EPSG','1262','EPSG','1024');"))
+ << last_error();
auto factoryOTHER =
AuthorityFactory::create(DatabaseContext::create(m_ctxt), "OTHER");
@@ -2297,40 +2438,40 @@ TEST_F(FactoryWithTmpDatabase, custom_geodetic_crs) {
populateWithFakeEPSG();
ASSERT_TRUE(execute("INSERT INTO geodetic_crs VALUES('TEST_NS','TEST','my "
- "name TEST',NULL,NULL,'geographic 2D',"
- "NULL,NULL,NULL,NULL,NULL,NULL,'+proj=longlat +a=2 "
+ "name TEST',NULL,'geographic 2D',"
+ "NULL,NULL,NULL,NULL,'+proj=longlat +a=2 "
"+rf=300',0);"))
<< last_error();
ASSERT_TRUE(execute("INSERT INTO geodetic_crs VALUES"
"('TEST_NS','TEST_BOUND',"
- "'my name TEST',NULL,NULL,'geographic 2D',"
- "NULL,NULL,NULL,NULL,NULL,NULL,'+proj=longlat +a=2 "
+ "'my name TEST',NULL,'geographic 2D',"
+ "NULL,NULL,NULL,NULL,'+proj=longlat +a=2 "
"+rf=300 +towgs84=1,2,3',0);"))
<< last_error();
ASSERT_TRUE(execute("INSERT INTO geodetic_crs VALUES('TEST_NS','TEST_GC',"
- "'my name',NULL,NULL,'geocentric',NULL,NULL,NULL,NULL,"
+ "'my name',NULL,'geocentric',NULL,NULL,"
"NULL,NULL,'+proj=geocent +a=2 +rf=300',0);"))
<< last_error();
ASSERT_TRUE(execute(
"INSERT INTO geodetic_crs "
"VALUES('TEST_NS','TEST_REF_ANOTHER','my name TEST_REF_ANOTHER',"
- "NULL,NULL,"
- "'geographic 2D',NULL,NULL,NULL,NULL,NULL,NULL,'TEST_NS:TEST',0);"))
+ "NULL,"
+ "'geographic 2D',NULL,NULL,NULL,NULL,'TEST_NS:TEST',0);"))
<< last_error();
ASSERT_TRUE(execute("INSERT INTO geodetic_crs "
- "VALUES('TEST_NS','TEST_WRONG','my name',NULL,NULL,"
- "'geographic 2D',NULL,NULL,NULL,NULL,NULL,NULL,"
+ "VALUES('TEST_NS','TEST_WRONG','my name',NULL,"
+ "'geographic 2D',NULL,NULL,NULL,NULL,"
"'+proj=merc',0);"))
<< last_error();
ASSERT_TRUE(execute(
"INSERT INTO geodetic_crs "
- "VALUES('TEST_NS','TEST_RECURSIVE','my name',NULL,NULL,'geographic 2D',"
- "NULL,NULL,NULL,NULL,NULL,NULL,'TEST_NS:TEST_RECURSIVE',0);"))
+ "VALUES('TEST_NS','TEST_RECURSIVE','my name',NULL,'geographic 2D',"
+ "NULL,NULL,NULL,NULL,'TEST_NS:TEST_RECURSIVE',0);"))
<< last_error();
auto factory =
@@ -2383,42 +2524,42 @@ TEST_F(FactoryWithTmpDatabase, custom_projected_crs) {
populateWithFakeEPSG();
ASSERT_TRUE(execute("INSERT INTO projected_crs "
- "VALUES('TEST_NS','TEST','my name',NULL,NULL,NULL,"
- "NULL,NULL,NULL,NULL,NULL,NULL,NULL,"
+ "VALUES('TEST_NS','TEST','my name',NULL,NULL,"
+ "NULL,NULL,NULL,NULL,NULL,"
"'+proj=mbt_s +unused_flag',0);"))
<< last_error();
ASSERT_TRUE(execute("INSERT INTO projected_crs "
- "VALUES('TEST_NS','TEST_BOUND','my name',NULL,NULL,"
- "NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,"
+ "VALUES('TEST_NS','TEST_BOUND','my name',NULL,"
+ "NULL,NULL,NULL,NULL,NULL,NULL,"
"'+proj=mbt_s +unused_flag +towgs84=1,2,3',0);"))
<< last_error();
ASSERT_TRUE(execute("INSERT INTO projected_crs "
- "VALUES('TEST_NS','TEST_WRONG','my name',NULL,NULL,"
- "NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,"
+ "VALUES('TEST_NS','TEST_WRONG','my name',NULL,"
+ "NULL,NULL,NULL,NULL,NULL,NULL,"
"'+proj=longlat',0);"))
<< last_error();
// Unknown ellipsoid
ASSERT_TRUE(execute("INSERT INTO projected_crs "
- "VALUES('TEST_NS','TEST_MERC','merc',NULL,NULL,NULL,"
- "NULL,NULL,NULL,NULL,NULL,NULL,NULL,"
+ "VALUES('TEST_NS','TEST_MERC','merc',NULL,NULL,"
+ "NULL,NULL,NULL,NULL,NULL,"
"'+proj=merc +x_0=0 +R=1',0);"))
<< last_error();
// Well-known ellipsoid
ASSERT_TRUE(execute("INSERT INTO projected_crs "
- "VALUES('TEST_NS','TEST_MERC2','merc2',NULL,NULL,NULL,"
- "NULL,NULL,NULL,NULL,NULL,NULL,NULL,"
+ "VALUES('TEST_NS','TEST_MERC2','merc2',NULL,NULL,"
+ "NULL,NULL,NULL,NULL,NULL,"
"'+proj=merc +x_0=0 +ellps=GRS80',0);"))
<< last_error();
// WKT1_GDAL
ASSERT_TRUE(
execute("INSERT INTO projected_crs "
- "VALUES('TEST_NS','TEST_WKT1_GDAL','WKT1_GDAL',NULL,NULL,NULL,"
- "NULL,NULL,NULL,NULL,NULL,NULL,NULL,"
+ "VALUES('TEST_NS','TEST_WKT1_GDAL','WKT1_GDAL',NULL,NULL,"
+ "NULL,NULL,NULL,NULL,NULL,"
"'"
"PROJCS[\"unknown\",\n"
" GEOGCS[\"unknown\",\n"
@@ -2578,8 +2719,8 @@ TEST(factory, attachExtraDatabases_auxiliary) {
sqlite3_exec(
dbAux,
"INSERT INTO geodetic_crs VALUES('OTHER','OTHER_4326','WGS "
- "84',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6326',"
- "'EPSG','1262',NULL,0);",
+ "84',NULL,'geographic 2D','EPSG','6422','EPSG','6326',"
+ "NULL,0);",
nullptr, nullptr, nullptr) == SQLITE_OK);
ASSERT_TRUE(sqlite3_exec(dbAux, "COMMIT", nullptr, nullptr, nullptr) ==
SQLITE_OK);
@@ -2704,26 +2845,34 @@ TEST_F(FactoryWithTmpDatabase,
ASSERT_TRUE(
execute("INSERT INTO other_transformation "
"VALUES('OTHER','PARTIAL_AREA_PERFECT_ACCURACY',"
- "'PARTIAL_AREA_PERFECT_ACCURACY',NULL,NULL,'PROJ',"
+ "'PARTIAL_AREA_PERFECT_ACCURACY',NULL,'PROJ',"
"'PROJString','+proj=helmert +x=1',"
- "'EPSG','4326','EPSG','4326','EPSG','1933',0.0,NULL,NULL,NULL,"
+ "'EPSG','4326','EPSG','4326',0.0,NULL,NULL,NULL,"
"NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,"
"NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,"
"NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,"
"NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);"))
<< last_error();
+ ASSERT_TRUE(execute("INSERT INTO usage VALUES('OTHER', "
+ "'1','other_transformation','OTHER','PARTIAL_AREA_"
+ "PERFECT_ACCURACY','EPSG','1933','EPSG','1024')"))
+ << last_error();
ASSERT_TRUE(
execute("INSERT INTO other_transformation "
"VALUES('OTHER','WHOLE_AREA_APPROX_ACCURACY',"
- "'WHOLE_AREA_APPROX_ACCURACY',NULL,NULL,'PROJ',"
+ "'WHOLE_AREA_APPROX_ACCURACY',NULL,'PROJ',"
"'PROJString','+proj=helmert +x=2',"
- "'EPSG','4326','EPSG','4326','EPSG','1262',1.0,NULL,NULL,NULL,"
+ "'EPSG','4326','EPSG','4326',1.0,NULL,NULL,NULL,"
"NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,"
"NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,"
"NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,"
"NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);"))
<< last_error();
+ ASSERT_TRUE(execute("INSERT INTO usage VALUES('OTHER', "
+ "'2','other_transformation','OTHER','WHOLE_AREA_APPROX_"
+ "ACCURACY','EPSG','1262','EPSG','1024')"))
+ << last_error();
auto dbContext = DatabaseContext::create(m_ctxt);
auto authFactory =