]> granicus.if.org Git - postgis/commitdiff
Added missing proj tests
authorSandro Santilli <strk@keybit.net>
Wed, 30 Nov 2005 21:02:52 +0000 (21:02 +0000)
committerSandro Santilli <strk@keybit.net>
Wed, 30 Nov 2005 21:02:52 +0000 (21:02 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@2109 b70326c6-7e19-0410-871a-916f4a2858ee

regress/regress_proj.sql [new file with mode: 0644]
regress/regress_proj_expected [new file with mode: 0644]

diff --git a/regress/regress_proj.sql b/regress/regress_proj.sql
new file mode 100644 (file)
index 0000000..3f1e48e
--- /dev/null
@@ -0,0 +1,37 @@
+
+-- some transform() regression
+
+-- prime spatial_ref_sys table with two projections
+
+--- EPSG 32633 : WGS 84 / UTM zone 33N
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32633,'EPSG',32633,'PROJCS["WGS 84 / UTM zone 33N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","32633"]]','+proj=utm +zone=33 +ellps=WGS84 +datum=WGS84 +units=m +no_defs ');
+--- EPSG 4326 : WGS 84
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4326,'EPSG',4326,'GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]]','+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs ');
+
+--- test #0: NULL values
+SELECT 0,coalesce(AsText(transform(NULL, 32633)),'EMPTY');
+
+--- test #1: a simple projection
+SELECT 1,AsEWKT(SnapToGrid(transform(GeomFromEWKT('SRID=4326;POINT(16 48)'),32633),10));
+
+--- test #2: same in 3D
+SELECT 2,AsEWKT(SnapToGrid(transform(GeomFromEWKT('SRID=4326;POINT(16 48 171)'),32633),10));
+
+--- test #3: same in 4D
+SELECT 3,AsEWKT(SnapToGrid(transform(GeomFromEWKT('SRID=4326;POINT(16 48 171 -500)'),32633),10));
+
+--- test #4: LINESTRING projection, 2 points
+SELECT 4,AsEWKT(SnapToGrid(transform(GeomFromEWKT('SRID=4326;LINESTRING(16 48, 16 49)'),32633),10));
+
+--- test #5: LINESTRING projection, 2 points, 4D
+SELECT 5,AsEWKT(SnapToGrid(transform(GeomFromEWKT('SRID=4326;LINESTRING(16 48 0 0, 16 49 0 0)'),32633),10));
+
+--- test #6: re-projecting a projected value
+SELECT 6,round(X(transform(transform(GeomFromEWKT('SRID=4326;POINT(16 48)'),32633), 4326))::numeric,8),round(Y(transform(transform(GeomFromEWKT('SRID=4326;POINT(16 48)'),32633), 4326))::numeric,8);
+
+--- test #7: Should yield an error since input SRID is unknown
+SELECT transform(GeomFromEWKT('SRID=-1;POINT(0 0)'),4326);
+
+--- test #8: Transforming to same SRID
+SELECT 8,AsEWKT(transform(GeomFromEWKT('SRID=4326;POINT(0 0)'),4326));
+
diff --git a/regress/regress_proj_expected b/regress/regress_proj_expected
new file mode 100644 (file)
index 0000000..7ac0e23
--- /dev/null
@@ -0,0 +1,9 @@
+0|EMPTY
+1|SRID=32633;POINT(574600 5316780)
+2|SRID=32633;POINT(574600 5316780)
+3|SRID=32633;POINT(574600 5316780)
+4|SRID=32633;LINESTRING(574600 5316780,573140 5427940)
+5|SRID=32633;LINESTRING(574600 5316780,573140 5427940)
+6|16.00000000|48.00000000
+ERROR:  Input geometry has unknown (-1) SRID
+8|SRID=4326;POINT(0 0)