aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2021-09-17 19:19:37 +0200
committerEven Rouault <even.rouault@spatialys.com>2021-09-17 19:20:54 +0200
commit2db54cc09a6587eba855aebac05baa1ae5130c2c (patch)
treee00063b02d5db66097b37444849694871dab1d68 /test
parenta3e412995df7dae2c8ef13d2682e03b770edcb75 (diff)
downloadPROJ-2db54cc09a6587eba855aebac05baa1ae5130c2c.tar.gz
PROJ-2db54cc09a6587eba855aebac05baa1ae5130c2c.zip
Database: add a 'anchor' field to geodetic_datum and vertical_datum tables
Update database layout version number to 1.2 consequently This new capability will be used by IAU planetary CRS (refs #2601)
Diffstat (limited to 'test')
-rw-r--r--test/cli/testprojinfo_out.dist4
-rw-r--r--test/unit/test_c_api.cpp4
-rw-r--r--test/unit/test_factory.cpp28
3 files changed, 22 insertions, 14 deletions
diff --git a/test/cli/testprojinfo_out.dist b/test/cli/testprojinfo_out.dist
index 2cb30c63..b90774f7 100644
--- a/test/cli/testprojinfo_out.dist
+++ b/test/cli/testprojinfo_out.dist
@@ -262,7 +262,7 @@ INSERT INTO usage VALUES('HOBU','USAGE_PROJECTED_CRS_MY_CRS','projected_crs','HO
Testing projinfo "+proj=merc +lat_ts=5 +datum=WGS84 +type=crs" --output-id HOBU:MY_CRS --authority HOBU -o SQL -q
INSERT INTO ellipsoid VALUES('HOBU','ELLPS_GEODETIC_DATUM_GEODETIC_CRS_MY_CRS','WGS 84','','PROJ','EARTH',6378137,'EPSG','9001',298.257223563,NULL,0);
INSERT INTO prime_meridian VALUES('HOBU','PM_GEODETIC_DATUM_GEODETIC_CRS_MY_CRS','Greenwich',0,'EPSG','9122',0);
-INSERT INTO geodetic_datum VALUES('HOBU','GEODETIC_DATUM_GEODETIC_CRS_MY_CRS','World Geodetic System 1984','','HOBU','ELLPS_GEODETIC_DATUM_GEODETIC_CRS_MY_CRS','HOBU','PM_GEODETIC_DATUM_GEODETIC_CRS_MY_CRS',NULL,NULL,NULL,0);
+INSERT INTO geodetic_datum VALUES('HOBU','GEODETIC_DATUM_GEODETIC_CRS_MY_CRS','World Geodetic System 1984','','HOBU','ELLPS_GEODETIC_DATUM_GEODETIC_CRS_MY_CRS','HOBU','PM_GEODETIC_DATUM_GEODETIC_CRS_MY_CRS',NULL,NULL,NULL,NULL,0);
INSERT INTO usage VALUES('HOBU','USAGE_GEODETIC_DATUM_GEODETIC_CRS_MY_CRS','geodetic_datum','HOBU','GEODETIC_DATUM_GEODETIC_CRS_MY_CRS','PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN');
INSERT INTO geodetic_crs VALUES('HOBU','GEODETIC_CRS_MY_CRS','unknown','','geographic 2D','EPSG','6424','HOBU','GEODETIC_DATUM_GEODETIC_CRS_MY_CRS',NULL,0);
INSERT INTO usage VALUES('HOBU','USAGE_GEODETIC_CRS_MY_CRS','geodetic_crs','HOBU','GEODETIC_CRS_MY_CRS','PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN');
@@ -1567,7 +1567,7 @@ CREATE TABLE unit_of_measure(
Testing projinfo --dump-db-structure --output-id HOBU:XXXX EPSG:4326 | tail -n 4
INSERT INTO metadata VALUES('DATABASE.LAYOUT.VERSION.MAJOR',1);
-INSERT INTO metadata VALUES('DATABASE.LAYOUT.VERSION.MINOR',1);
+INSERT INTO metadata VALUES('DATABASE.LAYOUT.VERSION.MINOR',2);
INSERT INTO geodetic_crs VALUES('HOBU','XXXX','WGS 84','','geographic 2D','EPSG','6422','EPSG','6326',NULL,0);
INSERT INTO usage VALUES('HOBU','USAGE_GEODETIC_CRS_XXXX','geodetic_crs','HOBU','XXXX','EPSG','1262','EPSG','1183');
diff --git a/test/unit/test_c_api.cpp b/test/unit/test_c_api.cpp
index 4898345c..05e99237 100644
--- a/test/unit/test_c_api.cpp
+++ b/test/unit/test_c_api.cpp
@@ -5579,7 +5579,7 @@ TEST_F(CApi, proj_get_insert_statements) {
EXPECT_EQ(std::string(list[0]),
"INSERT INTO geodetic_datum VALUES('HOBU',"
"'GEODETIC_DATUM_XXXX','GDA2020','','EPSG','7019',"
- "'EPSG','8901',NULL,NULL,NULL,0);");
+ "'EPSG','8901',NULL,NULL,NULL,NULL,0);");
EXPECT_EQ(sizeOfStringList(list), 4);
proj_string_list_destroy(list);
}
@@ -5627,7 +5627,7 @@ TEST_F(CApi, proj_get_insert_statements) {
EXPECT_EQ(std::string(list[0]),
"INSERT INTO geodetic_datum VALUES('HOBU',"
"'GEODETIC_DATUM_XXXX','GDA2020','','EPSG','7019',"
- "'EPSG','8901',NULL,NULL,NULL,0);");
+ "'EPSG','8901',NULL,NULL,NULL,NULL,0);");
proj_string_list_destroy(list);
}
diff --git a/test/unit/test_factory.cpp b/test/unit/test_factory.cpp
index 1ecea9d6..50a4b971 100644
--- a/test/unit/test_factory.cpp
+++ b/test/unit/test_factory.cpp
@@ -1619,7 +1619,8 @@ class FactoryWithTmpDatabase : public ::testing::Test {
ASSERT_TRUE(
execute("INSERT INTO geodetic_datum "
"VALUES('EPSG','6326','World Geodetic System 1984','',"
- "'EPSG','7030','EPSG','8901',NULL,NULL,NULL,0);"))
+ "'EPSG','7030','EPSG','8901',NULL,NULL,NULL,"
+ "'my anchor',0);"))
<< last_error();
ASSERT_TRUE(execute("INSERT INTO usage VALUES('EPSG',"
"'geodetic_datum_6326_usage','geodetic_datum',"
@@ -1627,7 +1628,7 @@ class FactoryWithTmpDatabase : public ::testing::Test {
<< last_error();
ASSERT_TRUE(
execute("INSERT INTO vertical_datum VALUES('EPSG','1027','EGM2008 "
- "geoid',NULL,NULL,NULL,NULL,0);"))
+ "geoid',NULL,NULL,NULL,NULL,'my anchor',0);"))
<< last_error();
ASSERT_TRUE(execute("INSERT INTO usage VALUES('EPSG',"
"'vertical_datum_1027_usage','vertical_datum',"
@@ -1827,7 +1828,7 @@ class FactoryWithTmpDatabase : public ::testing::Test {
val + "','" + val +
"','',"
"'EPSG','7030','EPSG','8901',"
- "NULL,NULL,NULL,0);"))
+ "NULL,NULL,NULL,NULL,0);"))
<< last_error();
ASSERT_TRUE(execute("INSERT INTO usage VALUES('FOO',"
"'geodetic_datum_" +
@@ -2038,11 +2039,15 @@ TEST_F(FactoryWithTmpDatabase, AuthorityFactory_test_with_fake_EPSG_database) {
EXPECT_TRUE(nn_dynamic_pointer_cast<Ellipsoid>(
factory->createObject("7030")) != nullptr);
- EXPECT_TRUE(nn_dynamic_pointer_cast<GeodeticReferenceFrame>(
- factory->createObject("6326")) != nullptr);
+ auto grf = nn_dynamic_pointer_cast<GeodeticReferenceFrame>(
+ factory->createObject("6326"));
+ ASSERT_TRUE(grf != nullptr);
+ EXPECT_EQ(*grf->anchorDefinition(), "my anchor");
- EXPECT_TRUE(nn_dynamic_pointer_cast<VerticalReferenceFrame>(
- factory->createObject("1027")) != nullptr);
+ auto vrf = nn_dynamic_pointer_cast<VerticalReferenceFrame>(
+ factory->createObject("1027"));
+ ASSERT_TRUE(vrf != nullptr);
+ EXPECT_EQ(*vrf->anchorDefinition(), "my anchor");
EXPECT_TRUE(nn_dynamic_pointer_cast<GeographicCRS>(
factory->createObject("4326")) != nullptr);
@@ -3876,7 +3881,8 @@ TEST(factory, objectInsertion) {
ASSERT_EQ(sql.size(), 4U);
EXPECT_EQ(sql[0],
"INSERT INTO geodetic_datum VALUES('HOBU','1','my "
- "datum','','EPSG','7030','EPSG','8901',NULL,NULL,NULL,0);");
+ "datum','','EPSG','7030','EPSG','8901',NULL,NULL,NULL,NULL,"
+ "0);");
const auto identified =
crs->identify(AuthorityFactory::create(ctxt, std::string()));
ASSERT_EQ(identified.size(), 1U);
@@ -3911,7 +3917,8 @@ TEST(factory, objectInsertion) {
EXPECT_EQ(sql[0],
"INSERT INTO geodetic_datum "
"VALUES('HOBU','GEODETIC_DATUM_MY_EPSG_4326','my "
- "datum','','EPSG','7030','EPSG','8901',NULL,NULL,NULL,0);");
+ "datum','','EPSG','7030','EPSG','8901',NULL,NULL,NULL,NULL,"
+ "0);");
const auto identified =
crs->identify(AuthorityFactory::create(ctxt, std::string()));
ASSERT_EQ(identified.size(), 1U);
@@ -4175,7 +4182,8 @@ TEST(factory, objectInsertion) {
ASSERT_EQ(sql.size(), 4U);
EXPECT_EQ(sql[0],
"INSERT INTO vertical_datum VALUES('HOBU',"
- "'VERTICAL_DATUM_XXXX','my datum','',NULL,NULL,NULL,0);");
+ "'VERTICAL_DATUM_XXXX','my datum','',NULL,NULL,NULL,NULL,"
+ "0);");
const auto identified =
crs->identify(AuthorityFactory::create(ctxt, std::string()));
ASSERT_EQ(identified.size(), 1U);