aboutsummaryrefslogtreecommitdiff
path: root/src/PJ_cart.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/PJ_cart.c')
-rw-r--r--src/PJ_cart.c39
1 files changed, 34 insertions, 5 deletions
diff --git a/src/PJ_cart.c b/src/PJ_cart.c
index 9155dd03..c6d1dd74 100644
--- a/src/PJ_cart.c
+++ b/src/PJ_cart.c
@@ -235,6 +235,7 @@ int pj_cart_selftest (void) {
PJ_CONTEXT *ctx;
PJ *P;
PJ_OBS a, b, obs[2];
+ PJ_COORD coord[2];
int err;
size_t n, sz;
double dist, h, t;
@@ -419,14 +420,42 @@ int pj_cart_selftest (void) {
if (50 != obs[1].coo.lpz.z) return 27; /* NOTE: unchanged */
if (50==h) return 28;
- /* Clean up */
- proj_destroy (P);
+ /* test proj_transform_obs() */
+
+ obs[0].coo = proj_coord (PJ_TORAD(12), PJ_TORAD(55), 45, 0);
+ obs[1].coo = proj_coord (PJ_TORAD(12), PJ_TORAD(56), 50, 0);
+
+ if (proj_transform_obs(P, PJ_FWD, 2, obs))
+ return 30;
+ if (a.coo.lpz.lam != obs[0].coo.lpz.lam) return 31;
+ if (a.coo.lpz.phi != obs[0].coo.lpz.phi) return 32;
+ if (a.coo.lpz.z != obs[0].coo.lpz.z) return 33;
+ if (b.coo.lpz.lam != obs[1].coo.lpz.lam) return 34;
+ if (b.coo.lpz.phi != obs[1].coo.lpz.phi) return 35;
+ if (b.coo.lpz.z != obs[1].coo.lpz.z) return 36;
+
+ /* test proj_transform_coord() */
+
+ coord[0] = proj_coord (PJ_TORAD(12), PJ_TORAD(55), 45, 0);
+ coord[1] = proj_coord (PJ_TORAD(12), PJ_TORAD(56), 50, 0);
+ if (proj_transform_coord(P, PJ_FWD, 2, coord))
+ return 40;
+
+ if (a.coo.lpz.lam != coord[0].lpz.lam) return 41;
+ if (a.coo.lpz.phi != coord[0].lpz.phi) return 42;
+ if (a.coo.lpz.z != coord[0].lpz.z) return 43;
+ if (b.coo.lpz.lam != coord[1].lpz.lam) return 44;
+ if (b.coo.lpz.phi != coord[1].lpz.phi) return 45;
+ if (b.coo.lpz.z != coord[1].lpz.z) return 46;
+
+ /* Clean up after transform* tests */
+ proj_destroy (P);
/* test proj_create_crs_to_crs() */
P = proj_create_crs_to_crs(0, "epsg:25832", "epsg:25833");
if (P==0)
- return 30;
+ return 50;
a.coo.xy.x = 700000.0;
a.coo.xy.y = 6000000.0;
@@ -435,14 +464,14 @@ int pj_cart_selftest (void) {
a = proj_trans_obs(P, PJ_FWD, a);
if (dist > 1e-7)
- return 31;
+ return 51;
proj_destroy(P);
/* let's make sure that only entries in init-files results in a usable PJ */
P = proj_create_crs_to_crs(0, "proj=utm +zone=32 +datum=WGS84", "proj=utm +zone=33 +datum=WGS84");
if (P != 0) {
proj_destroy(P);
- return 32;
+ return 52;
}
return 0;