]> granicus.if.org Git - postgis/commitdiff
replace param logic
authorRegina Obe <lr@pcorp.us>
Mon, 15 Dec 2008 04:12:24 +0000 (04:12 +0000)
committerRegina Obe <lr@pcorp.us>
Mon, 15 Dec 2008 04:12:24 +0000 (04:12 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@3403 b70326c6-7e19-0410-871a-916f4a2858ee

doc/xsl/postgis_gardentest.sql.xsl

index 3709df402c36fedee120d5f185e238d11cc5ac47..f4c6939aa6f63d1597914b699253596c2b0f7f35 100644 (file)
        <xsl:output method="text" />\r
        <!--Exclude this from testing - it crashes with geometry collection -->\r
        <xsl:variable name='fnexclude'>ST_CurveToLine</xsl:variable>\r
-       <xsl:variable name='var_integer'>4269</xsl:variable>\r
+       <xsl:variable name='var_srid'>4269</xsl:variable>\r
+       <xsl:variable name='var_integer'>-5</xsl:variable>\r
        <xsl:variable name='var_float1'>0.5</xsl:variable>\r
        <xsl:variable name='var_float2'>0.75</xsl:variable>\r
        <xsl:variable name='var_version'>2</xsl:variable>\r
+       <xsl:variable name='var_NDRXDR'>XDR</xsl:variable>\r
+       <xsl:variable name='var_text'>monkey</xsl:variable>\r
        <pgis:gardens>\r
                <pgis:gset ID='PointSet' GeometryType='POINT'>(SELECT ST_SetSRID(ST_Point(i,j),4326) As the_geom \r
                FROM generate_series(-10,50,15) As i \r
                        CROSS JOIN generate_series(50,70, 20) As j\r
                        CROSS JOIN generate_series(1,2) As m\r
                        GROUP BY m)</pgis:gset>\r
-                       \r
+       </pgis:gardens>\r
+       <!--This is just a placeholder to hold geometries that will crash server when hitting against some functions\r
+               We'll fix these crashers in 1.4 -->\r
+       <pgis:gardencrashers>\r
                <pgis:gset ID='CurvePolySet' GeometryType='CURVEPOLYGON'>(SELECT ST_LineToCurve(ST_Buffer(ST_SetSRID(ST_Point(i,j),4326), j))  As the_geom \r
                FROM generate_series(-10,50,10) As i \r
                        CROSS JOIN generate_series(40,70, 20) As j)</pgis:gset>\r
-       </pgis:gardens>\r
+       </pgis:gardencrashers>\r
 \r
        <xsl:template match='/chapter'>\r
 <!--Start Test table creation, insert, drop -->\r
@@ -91,9 +97,12 @@ SELECT 'create,insert,drop Test: Start Testing Multi/<xsl:value-of select="@Geom
 <!--End Test table creation, insert, drop -->\r
                <xsl:for-each select='sect1/refentry'>\r
                <xsl:sort select="@id"/>\r
+\r
+                       <xsl:for-each select="refsynopsisdiv/funcsynopsis/funcprototype">\r
+<!--Create dummy paramaters to be used later -->\r
+                       <xsl:variable name='fnfakeparams'><xsl:call-template name="replaceparams"><xsl:with-param name="func" select="." /></xsl:call-template></xsl:variable>\r
 <!-- For each function prototype generate a test sql statement\r
        Test functions that take no arguments  -->\r
-                       <xsl:for-each select="refsynopsisdiv/funcsynopsis/funcprototype">\r
 <xsl:if test="count(paramdef/parameter) = 0">SELECT  'Starting <xsl:value-of select="funcdef/function" />()';BEGIN; \r
 SELECT  <xsl:value-of select="funcdef/function" />();\r
 COMMIT;\r
@@ -126,7 +135,7 @@ SELECT '<xsl:value-of select="$fnname" /><xsl:text> </xsl:text> <xsl:value-of se
        </xsl:for-each>\r
 </xsl:if>\r
 \r
-<!--Garden Relationship/geom2 output function tests  -->\r
+<!--Garden Relationship and 2 geom input function tests  -->\r
 <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 '))">\r
        <xsl:variable name='fnname'><xsl:value-of select="funcdef/function"/></xsl:variable>\r
        <xsl:variable name='fndef'><xsl:value-of select="funcdef"/></xsl:variable>\r
@@ -152,6 +161,33 @@ SELECT '<xsl:value-of select="$fnname" /><xsl:text> </xsl:text> <xsl:value-of se
        </xsl:text>\r
        </xsl:for-each>\r
 </xsl:if>\r
+\r
+<!--Garden Relationship more than 1 args first geom -->\r
+<xsl:if test="(count(paramdef/parameter) &gt; 1 and (paramdef[1]/type = 'geometry' or paramdef[1]/type = 'geometry ')  and not(paramdef[2]/type = 'geometry' or paramdef[2]/type = 'geometry '))">\r
+       <xsl:variable name='fnname'><xsl:value-of select="funcdef/function"/></xsl:variable>\r
+       <xsl:variable name='fndef'><xsl:value-of select="funcdef"/></xsl:variable>\r
+       <xsl:for-each select="document('')//pgis:gardens/pgis:gset">\r
+SELECT '<xsl:value-of select="$fnname" /><xsl:text> </xsl:text><xsl:value-of select="@ID" />: Start Testing <xsl:value-of select="@GeometryType" />'; \r
+BEGIN; <!-- If output is geometry show ewkt rep -->\r
+               <xsl:choose>\r
+                 <xsl:when test="contains($fndef, 'geometry ')">\r
+SELECT ST_AsEWKT(<xsl:value-of select="$fnname" />(<xsl:value-of select="$fnfakeparams" />))\r
+                 </xsl:when>\r
+                 <xsl:otherwise>\r
+SELECT <xsl:value-of select="$fnname" />(<xsl:value-of select="$fnfakeparams" />)\r
+                 </xsl:otherwise>\r
+               </xsl:choose>\r
+               FROM (<xsl:value-of select="." />) As foo1 CROSS JOIN (<xsl:value-of select="." />) As foo2\r
+               LIMIT 5;  \r
+COMMIT;\r
+SELECT '<xsl:value-of select="$fnname" /><xsl:text> </xsl:text> <xsl:value-of select="@ID" />: End Testing Multi/<xsl:value-of select="@GeometryType" />';\r
+       <xsl:text>\r
+       \r
+       </xsl:text>\r
+       </xsl:for-each>\r
+</xsl:if>\r
+\r
+\r
                        </xsl:for-each>\r
                </xsl:for-each>\r
        </xsl:template>\r
@@ -162,8 +198,26 @@ SELECT '<xsl:value-of select="$fnname" /><xsl:text> </xsl:text> <xsl:value-of se
                <xsl:for-each select="$func">\r
                        <xsl:for-each select="paramdef">\r
                                <xsl:choose>\r
-                                       <xsl:when test="count(parameter) &gt; 0"> \r
-                                               <xsl:value-of select="parameter" />\r
+                                       <xsl:when test="contains(parameter, 'srid')"> \r
+                                               <xsl:value-of select="$var_srid" />\r
+                                       </xsl:when>\r
+                                       <xsl:when test="contains(parameter, 'NDR')"> \r
+                                               "<xsl:value-of select="$var_NDRXDR" />"\r
+                                       </xsl:when>\r
+                                       <xsl:when test="contains(parameter, 'version')"> \r
+                                               <xsl:value-of select="$var_version" />\r
+                                       </xsl:when>\r
+                                       <xsl:when test="type = 'geometry' or type = 'geometry '"> \r
+                                               <xsl:text>the_geom</xsl:text>\r
+                                       </xsl:when>\r
+                                       <xsl:when test="contains(type, 'float')"> \r
+                                               <xsl:value-of select="$var_float1" />\r
+                                       </xsl:when>\r
+                                       <xsl:when test="contains(type, 'integer')"> \r
+                                               <xsl:value-of select="$var_integer" />\r
+                                       </xsl:when>\r
+                                       <xsl:when test="contains(type, 'text')"> \r
+                                               "<xsl:value-of select="$var_text" />"\r
                                        </xsl:when>\r
                                </xsl:choose>\r
                                <xsl:if test="position()&lt;last()"><xsl:text>, </xsl:text></xsl:if>\r