]> granicus.if.org Git - postgis/commitdiff
Add tests for parametrized buffer
authorSandro Santilli <strk@keybit.net>
Wed, 24 Jun 2009 13:32:46 +0000 (13:32 +0000)
committerSandro Santilli <strk@keybit.net>
Wed, 24 Jun 2009 13:32:46 +0000 (13:32 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@4206 b70326c6-7e19-0410-871a-916f4a2858ee

regress/Makefile.in
regress/regress_buffer_params.sql [new file with mode: 0644]
regress/regress_buffer_params_expected [new file with mode: 0644]

index 60080404fdd50ee3a7cb7c40c095ebac01a99d2e..f548b8c44115f5f29334ea018e7581a544212986 100644 (file)
@@ -62,6 +62,11 @@ ifeq ($(shell expr $(POSTGIS_GEOS_VERSION) ">=" 30),1)
 ifeq ($(shell expr $(POSTGIS_GEOS_VERSION) ">=" 31),1)
        TESTS += regress_ogc_prep
 
+# Styled buffer only if GEOS >= 3.2
+ifeq ($(shell expr $(POSTGIS_GEOS_VERSION) ">=" 32),1)
+       TESTS += regress_buffer_params
+
+endif
 endif
 endif
 
diff --git a/regress/regress_buffer_params.sql b/regress/regress_buffer_params.sql
new file mode 100644 (file)
index 0000000..211d2db
--- /dev/null
@@ -0,0 +1,16 @@
+---
+--- Tests for ST_Buffer with parameters (needs GEOS-3.2 or higher)
+---
+---
+
+-- Ouput is snapped to grid to account for small floating numbers
+-- differences between architectures
+SELECT 'point quadsegs=2', astext(SnapToGrid(st_buffer('POINT(0 0)', 1, 'quad_segs=2'), 1.0e-6));
+SELECT 'line quadsegs=2', astext(SnapToGrid(st_buffer('LINESTRING(0 0, 10 0)', 2, 'quad_segs=2'), 1.0e-6));
+SELECT 'line quadsegs=2 endcap=flat', astext(SnapToGrid(st_buffer('LINESTRING(0 0, 10 0)', 2, 'quad_segs=2 endcap=flat'), 1.0e-6));
+SELECT 'line quadsegs=2 endcap=square', astext(SnapToGrid(st_buffer('LINESTRING(0 0, 10 0)', 2, 'quad_segs=2 endcap=square'), 1.0e-6));
+SELECT 'poly quadsegs=2 join=round', astext(SnapToGrid(st_buffer('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))', 2, 'quad_segs=2 join=round'), 1.0e-6));
+SELECT 'poly quadsegs=2 join=bevel', astext(SnapToGrid(st_buffer('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))', 2, 'quad_segs=2 join=bevel'), 1.0e-6));
+SELECT 'poly quadsegs=2 join=mitre', astext(SnapToGrid(st_buffer('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))', 2, 'quad_segs=2 join=mitre'), 1.0e-6));
+SELECT 'poly quadsegs=2 join=mitre mitre_limit=1', astext(SnapToGrid(st_buffer('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))', 2, 'quad_segs=2 join=mitre mitre_limit=1'), 1.0e-6));
+
diff --git a/regress/regress_buffer_params_expected b/regress/regress_buffer_params_expected
new file mode 100644 (file)
index 0000000..1212911
--- /dev/null
@@ -0,0 +1,8 @@
+point quadsegs=2|POLYGON((1 0,0.707107 -0.707107,0 -1,-0.707107 -0.707107,-1 0,-0.707107 0.707107,0 1,0.707107 0.707107,1 0))
+line quadsegs=2|POLYGON((10 2,11.414214 1.414214,12 0,11.414214 -1.414214,10 -2,0 -2,-1.414214 -1.414214,-2 0,-1.414214 1.414214,0 2,10 2))
+line quadsegs=2 endcap=flat|POLYGON((10 2,10 -2,0 -2,0 2,10 2))
+line quadsegs=2 endcap=square|POLYGON((10 2,12 2,12 -2,0 -2,-2 -2,-2 2,10 2))
+poly quadsegs=2 join=round|POLYGON((-2 0,-2 10,-1.414214 11.414214,0 12,10 12,11.414214 11.414214,12 10,12 0,11.414214 -1.414214,10 -2,0 -2,-1.414214 -1.414214,-2 0))
+poly quadsegs=2 join=bevel|POLYGON((-2 0,-2 10,0 12,10 12,12 10,12 0,10 -2,0 -2,-2 0))
+poly quadsegs=2 join=mitre|POLYGON((-2 -2,-2 12,12 12,12 -2,-2 -2))
+poly quadsegs=2 join=mitre mitre_limit=1|POLYGON((-1.828427 -1,-1.828427 11,-1 11.828427,11 11.828427,11.828427 11,11.828427 -1,11 -1.828427,-1 -1.828427,-1.828427 -1))