[postgis-commits] svn - r3385 - trunk/doc/xsl
postgis-commits at postgis.refractions.net
postgis-commits at postgis.refractions.net
Fri Dec 12 05:05:46 PST 2008
Author: robe
Date: 2008-12-12 05:05:46 -0800 (Fri, 12 Dec 2008)
New Revision: 3385
Modified:
trunk/doc/xsl/postgis_gardentest.sql.xsl
Log:
Revise to use an xml collection instead of repetitive loops. Also put in select start and end so when the server crashes you know where it broke.
Modified: trunk/doc/xsl/postgis_gardentest.sql.xsl
===================================================================
--- trunk/doc/xsl/postgis_gardentest.sql.xsl 2008-12-12 11:07:56 UTC (rev 3384)
+++ trunk/doc/xsl/postgis_gardentest.sql.xsl 2008-12-12 13:05:46 UTC (rev 3385)
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:pgis="pgis schema local to this file">
<!-- ********************************************************************
* $Id$
********************************************************************
@@ -9,6 +9,18 @@
using a garden variety of geometries. Its intent is to flag major crashes.
******************************************************************** -->
<xsl:output method="text" />
+ <pgis:gardens>
+ <pgis:gset ID='PointSet' GeometryType='POINT'>(SELECT ST_SetSRID(ST_Point(i,j),4326) As the_geom
+ FROM generate_series(-60,50,10) As i
+ CROSS JOIN generate_series(40,70, 10) j)</pgis:gset>
+ <pgis:gset ID='LineSet' GeometryType='LINESTRING'>(SELECT ST_MakeLine(ST_SetSRID(ST_Point(i,j),4326),ST_SetSRID(ST_Point(j,i),4326)) As the_geom
+ FROM generate_series(-60,50,10) As i
+ CROSS JOIN generate_series(40,70, 10) As j)</pgis:gset>
+ <pgis:gset ID='PolySet' GeometryType='POLYGON'>(SELECT ST_Buffer(ST_SetSRID(ST_Point(i,j),4326), j) As the_geom
+ FROM generate_series(-60,50,10) As i
+ CROSS JOIN generate_series(40,70, 10) As j)</pgis:gset>
+ </pgis:gardens>
+
<xsl:template match='/chapter'>
<!-- Pull out the purpose section for each ref entry and strip whitespace and put in a variable to be tagged unto each function comment -->
<xsl:for-each select='sect1/refentry'>
@@ -16,61 +28,38 @@
<!-- For each function prototype generate a test sql statement
Test functions that take no arguments -->
<xsl:for-each select="refsynopsisdiv/funcsynopsis/funcprototype">
-<xsl:if test="count(paramdef/parameter) = 0">SELECT <xsl:value-of select="funcdef/function" />();
+<xsl:if test="count(paramdef/parameter) = 0">SELECT 'Starting <xsl:value-of select="funcdef/function" />()';BEGIN;
+SELECT <xsl:value-of select="funcdef/function" />();
+COMMIT;
+SELECT 'Ending <xsl:value-of select="funcdef/function" />()';
</xsl:if>
<!--Start Test aggregate and unary functions
- TODO: Make this section less verbose -->
-<!--Point Aggregate/geom accessor test -->
+ DONE: Make this section less verbose -->
+<!--Garden Aggregator/Unary function with input gsets test -->
<xsl:if test="contains(paramdef/type,'geometry set') or (count(paramdef/parameter) = 1 and contains(paramdef/type, 'geometry'))">
-<!-- If output is geometry show ewkt rep -->
- <xsl:choose>
- <xsl:when test="contains(funcdef, 'geometry ')">
- SELECT ST_AsEWKT(<xsl:value-of select="funcdef/function" />(the_geom)),
- ST_AsEWKT(<xsl:value-of select="funcdef/function" />(ST_Multi(the_geom)))
- </xsl:when>
- <xsl:otherwise>
- SELECT <xsl:value-of select="funcdef/function" />(the_geom),
- <xsl:value-of select="funcdef/function" />(ST_Multi(the_geom))
- </xsl:otherwise>
- </xsl:choose>
- FROM (SELECT ST_SetSRID(ST_Point(i,j),4326) As the_geom
- FROM generate_series(-60,50,5) As i
- CROSS JOIN generate_series(40,70, 5) j) As foo;
+ <xsl:variable name='fnname'><xsl:value-of select="funcdef/function"/></xsl:variable>
+ <xsl:variable name='fndef'><xsl:value-of select="funcdef"/></xsl:variable>
+ <xsl:for-each select="document('')//pgis:gardens/pgis:gset">
+SELECT '<xsl:value-of select="$fnname" /><xsl:text> </xsl:text><xsl:value-of select="@ID" />: Start Testing Multi/<xsl:value-of select="@GeometryType" />';
+BEGIN; <!-- If output is geometry show ewkt rep -->
+ <xsl:choose>
+ <xsl:when test="contains($fndef, 'geometry ')">
+SELECT ST_AsEWKT(<xsl:value-of select="$fnname" />(the_geom)),
+ ST_AsEWKT(<xsl:value-of select="$fnname" />(ST_Multi(the_geom)))
+ </xsl:when>
+ <xsl:otherwise>
+SELECT <xsl:value-of select="$fnname" />(the_geom),
+ <xsl:value-of select="$fnname" />(ST_Multi(the_geom))
+ </xsl:otherwise>
+ </xsl:choose>
+ FROM (<xsl:value-of select="." />) As foo;
+COMMIT;
+SELECT '<xsl:value-of select="$fnname" /><xsl:text> </xsl:text> <xsl:value-of select="@ID" />: End Testing Multi/<xsl:value-of select="@GeometryType" />';
+ <xsl:text>
+
+ </xsl:text>
+ </xsl:for-each>
</xsl:if>
-<!--Multi/Line Aggregate/accessor test -->
-<xsl:if test="contains(paramdef/type,'geometry set') or (count(paramdef/parameter) = 1 and contains(paramdef/type, 'geometry'))">
- <xsl:choose>
- <xsl:when test="contains(funcdef, 'geometry ')">
-SELECT ST_AsEWKT(<xsl:value-of select="funcdef/function" />(the_geom)),
- ST_AsEWKT(<xsl:value-of select="funcdef/function" />(ST_Multi(the_geom)))
- </xsl:when>
- <xsl:otherwise>
- SELECT <xsl:value-of select="funcdef/function" />(the_geom),
- <xsl:value-of select="funcdef/function" />(ST_Multi(the_geom))
- </xsl:otherwise>
- </xsl:choose>
- FROM (SELECT ST_MakeLine(ST_SetSRID(ST_Point(i,j),4326),ST_SetSRID(ST_Point(j,i),4326)) As the_geom
- FROM generate_series(-60,50,5) As i
- CROSS JOIN generate_series(40,70, 5) j) As foo;
-</xsl:if>
-<!--Multi/Polygon Aggregate/accessor test -->
-<xsl:if test="contains(paramdef/type,'geometry set') or (count(paramdef/parameter) = 1 and contains(paramdef/type, 'geometry'))">
-<!-- If output is geometry show ewkt rep -->
- <xsl:choose>
- <xsl:when test="contains(funcdef, 'geometry ')">
- SELECT ST_AsEWKT(<xsl:value-of select="funcdef/function" />(the_geom)),
- ST_AsEWKT(<xsl:value-of select="funcdef/function" />(ST_Multi(the_geom)))
- </xsl:when>
- <xsl:otherwise>
- SELECT <xsl:value-of select="funcdef/function" />(the_geom),
- <xsl:value-of select="funcdef/function" />(ST_Multi(the_geom))
- </xsl:otherwise>
- </xsl:choose>
- FROM (SELECT ST_Buffer(ST_SetSRID(ST_Point(i,j),4326), j) As the_geom
- FROM generate_series(-60,50,5) As i
- CROSS JOIN generate_series(40,70, 5) j) As foo;
-</xsl:if>
-<!--End Test aggregate and unary functions -->
</xsl:for-each>
</xsl:for-each>
</xsl:template>
More information about the postgis-commits
mailing list