aboutsummaryrefslogtreecommitdiff
path: root/test/unit
diff options
context:
space:
mode:
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 =