aboutsummaryrefslogtreecommitdiff
path: root/test/unit/pj_transform_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/unit/pj_transform_test.cpp')
-rw-r--r--test/unit/pj_transform_test.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/test/unit/pj_transform_test.cpp b/test/unit/pj_transform_test.cpp
index 5ca8dcce..ddb054f0 100644
--- a/test/unit/pj_transform_test.cpp
+++ b/test/unit/pj_transform_test.cpp
@@ -632,6 +632,23 @@ TEST(proj_api_h, default_fileapi) {
// ---------------------------------------------------------------------------
+TEST(pj_transform_test, ob_tran_to_meter_as_dest) {
+ auto src = pj_init_plus(
+ "+ellps=WGS84 +a=57.29577951308232 +proj=eqc +lon_0=0.0 +no_defs");
+ auto dst = pj_init_plus("+ellps=WGS84 +proj=ob_tran +o_proj=latlon "
+ "+o_lon_p=0.0 +o_lat_p=90.0 +lon_0=360.0 "
+ "+to_meter=0.0174532925199433 +no_defs");
+ double x = 2 * DEG_TO_RAD;
+ double y = 49 * DEG_TO_RAD;
+ EXPECT_EQ(pj_transform(src, dst, 1, 0, &x, &y, nullptr), 0);
+ EXPECT_NEAR(x, 2 * DEG_TO_RAD, 1e-12) << x / DEG_TO_RAD;
+ EXPECT_NEAR(y, 49 * DEG_TO_RAD, 1e-12) << y / DEG_TO_RAD;
+ pj_free(src);
+ pj_free(dst);
+}
+
+// ---------------------------------------------------------------------------
+
struct Spy {
bool gotInMyFOpen = false;
bool gotInMyFRead = false;
@@ -705,4 +722,19 @@ TEST(proj_api_h, custom_fileapi) {
EXPECT_TRUE(spy.gotInMyFClose);
}
+TEST(pj_transform_test, ob_tran_to_meter_as_srouce) {
+ auto src = pj_init_plus("+ellps=WGS84 +proj=ob_tran +o_proj=latlon "
+ "+o_lon_p=0.0 +o_lat_p=90.0 +lon_0=360.0 "
+ "+to_meter=0.0174532925199433 +no_defs");
+ auto dst = pj_init_plus(
+ "+ellps=WGS84 +a=57.29577951308232 +proj=eqc +lon_0=0.0 +no_defs");
+ double x = 2 * DEG_TO_RAD;
+ double y = 49 * DEG_TO_RAD;
+ EXPECT_EQ(pj_transform(src, dst, 1, 0, &x, &y, nullptr), 0);
+ EXPECT_NEAR(x, 2 * DEG_TO_RAD, 1e-12) << x / DEG_TO_RAD;
+ EXPECT_NEAR(y, 49 * DEG_TO_RAD, 1e-12) << y / DEG_TO_RAD;
+ pj_free(src);
+ pj_free(dst);
+}
+
} // namespace