[postgis-commits] svn - r3403 - trunk/doc/xsl
postgis-commits at postgis.refractions.net
postgis-commits at postgis.refractions.net
Sun Dec 14 20:12:24 PST 2008
Author: robe
Date: 2008-12-14 20:12:24 -0800 (Sun, 14 Dec 2008)
New Revision: 3403
Modified:
trunk/doc/xsl/postgis_gardentest.sql.xsl
Log:
replace param logic
Modified: trunk/doc/xsl/postgis_gardentest.sql.xsl
===================================================================
--- trunk/doc/xsl/postgis_gardentest.sql.xsl 2008-12-15 02:40:19 UTC (rev 3402)
+++ trunk/doc/xsl/postgis_gardentest.sql.xsl 2008-12-15 04:12:24 UTC (rev 3403)
@@ -11,10 +11,13 @@
<xsl:output method="text" />
<!--Exclude this from testing - it crashes with geometry collection -->
<xsl:variable name='fnexclude'>ST_CurveToLine</xsl:variable>
- <xsl:variable name='var_integer'>4269</xsl:variable>
+ <xsl:variable name='var_srid'>4269</xsl:variable>
+ <xsl:variable name='var_integer'>-5</xsl:variable>
<xsl:variable name='var_float1'>0.5</xsl:variable>
<xsl:variable name='var_float2'>0.75</xsl:variable>
<xsl:variable name='var_version'>2</xsl:variable>
+ <xsl:variable name='var_NDRXDR'>XDR</xsl:variable>
+ <xsl:variable name='var_text'>monkey</xsl:variable>
<pgis:gardens>
<pgis:gset ID='PointSet' GeometryType='POINT'>(SELECT ST_SetSRID(ST_Point(i,j),4326) As the_geom
FROM generate_series(-10,50,15) As i
@@ -60,11 +63,14 @@
CROSS JOIN generate_series(50,70, 20) As j
CROSS JOIN generate_series(1,2) As m
GROUP BY m)</pgis:gset>
-
+ </pgis:gardens>
+ <!--This is just a placeholder to hold geometries that will crash server when hitting against some functions
+ We'll fix these crashers in 1.4 -->
+ <pgis:gardencrashers>
<pgis:gset ID='CurvePolySet' GeometryType='CURVEPOLYGON'>(SELECT ST_LineToCurve(ST_Buffer(ST_SetSRID(ST_Point(i,j),4326), j)) As the_geom
FROM generate_series(-10,50,10) As i
CROSS JOIN generate_series(40,70, 20) As j)</pgis:gset>
- </pgis:gardens>
+ </pgis:gardencrashers>
<xsl:template match='/chapter'>
<!--Start Test table creation, insert, drop -->
@@ -91,9 +97,12 @@
<!--End Test table creation, insert, drop -->
<xsl:for-each select='sect1/refentry'>
<xsl:sort select="@id"/>
+
+ <xsl:for-each select="refsynopsisdiv/funcsynopsis/funcprototype">
+<!--Create dummy paramaters to be used later -->
+ <xsl:variable name='fnfakeparams'><xsl:call-template name="replaceparams"><xsl:with-param name="func" select="." /></xsl:call-template></xsl:variable>
<!-- 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 'Starting <xsl:value-of select="funcdef/function" />()';BEGIN;
SELECT <xsl:value-of select="funcdef/function" />();
COMMIT;
@@ -126,7 +135,7 @@
</xsl:for-each>
</xsl:if>
-<!--Garden Relationship/geom2 output function tests -->
+<!--Garden Relationship and 2 geom input function tests -->
<xsl:if test="(count(paramdef/parameter) = 2 and (paramdef[1]/type = 'geometry' or paramdef[1]/type = 'geometry ') and (paramdef[2]/type = 'geometry' or paramdef[2]/type = 'geometry '))">
<xsl:variable name='fnname'><xsl:value-of select="funcdef/function"/></xsl:variable>
<xsl:variable name='fndef'><xsl:value-of select="funcdef"/></xsl:variable>
@@ -152,6 +161,33 @@
</xsl:text>
</xsl:for-each>
</xsl:if>
+
+<!--Garden Relationship more than 1 args first geom -->
+<xsl:if test="(count(paramdef/parameter) > 1 and (paramdef[1]/type = 'geometry' or paramdef[1]/type = 'geometry ') and not(paramdef[2]/type = 'geometry' or paramdef[2]/type = 'geometry '))">
+ <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 <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" />(<xsl:value-of select="$fnfakeparams" />))
+ </xsl:when>
+ <xsl:otherwise>
+SELECT <xsl:value-of select="$fnname" />(<xsl:value-of select="$fnfakeparams" />)
+ </xsl:otherwise>
+ </xsl:choose>
+ FROM (<xsl:value-of select="." />) As foo1 CROSS JOIN (<xsl:value-of select="." />) As foo2
+ LIMIT 5;
+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>
+
+
</xsl:for-each>
</xsl:for-each>
</xsl:template>
@@ -162,9 +198,27 @@
<xsl:for-each select="$func">
<xsl:for-each select="paramdef">
<xsl:choose>
- <xsl:when test="count(parameter) > 0">
- <xsl:value-of select="parameter" />
+ <xsl:when test="contains(parameter, 'srid')">
+ <xsl:value-of select="$var_srid" />
</xsl:when>
+ <xsl:when test="contains(parameter, 'NDR')">
+ "<xsl:value-of select="$var_NDRXDR" />"
+ </xsl:when>
+ <xsl:when test="contains(parameter, 'version')">
+ <xsl:value-of select="$var_version" />
+ </xsl:when>
+ <xsl:when test="type = 'geometry' or type = 'geometry '">
+ <xsl:text>the_geom</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains(type, 'float')">
+ <xsl:value-of select="$var_float1" />
+ </xsl:when>
+ <xsl:when test="contains(type, 'integer')">
+ <xsl:value-of select="$var_integer" />
+ </xsl:when>
+ <xsl:when test="contains(type, 'text')">
+ "<xsl:value-of select="$var_text" />"
+ </xsl:when>
</xsl:choose>
<xsl:if test="position()<last()"><xsl:text>, </xsl:text></xsl:if>
</xsl:for-each>
More information about the postgis-commits
mailing list