******************************************************************** -->\r
<xsl:output method="text" />\r
<xsl:variable name='testversion'>1.3.5</xsl:variable>\r
- <xsl:variable name='fnexclude'>AddGeometryColumn DropGeometryColumn DropGeometryTable</xsl:variable>\r
+ <xsl:variable name='fnexclude14'>AddGeometryColumn DropGeometryColumn DropGeometryTable</xsl:variable>\r
+ <xsl:variable name='fnexclude'>AddGeometryColumn DropGeometryColumn DropGeometryTable Populate_Geometry_Columns ST_CurveToLine ST_GeoHash ST_LineCrossingDirection ST_LineToCurve ST_IsValidReason ST_ContainsProperly ST_MinimumBoundingCircle</xsl:variable>\r
<!--This is just a place holder to state functions not supported in 1.3 or tested separately -->\r
\r
<xsl:variable name='var_srid'>3395</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(40,70, 15) j)</pgis:gset>\r
+ CROSS JOIN generate_series(40,70, 15) j\r
+ ORDER BY i,j\r
+ )</pgis:gset>\r
<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\r
FROM generate_series(-10,50,10) As i\r
CROSS JOIN generate_series(40,70, 15) As j\r
- WHERE NOT(i = j))</pgis:gset>\r
+ WHERE NOT(i = j) \r
+ ORDER BY i, i*j)</pgis:gset>\r
<pgis:gset ID='PolySet' GeometryType='POLYGON'>(SELECT 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
+ CROSS JOIN generate_series(40,70, 20) As j\r
+ ORDER BY i, i*j, j)</pgis:gset>\r
<pgis:gset ID='PointMSet' GeometryType='POINTM'>(SELECT ST_SetSRID(ST_MakePointM(i,j,m),4326) As the_geom\r
FROM generate_series(-10,50,10) As i\r
CROSS JOIN generate_series(50,70, 20) AS j\r
- CROSS JOIN generate_series(1,2) As m)</pgis:gset>\r
+ CROSS JOIN generate_series(1,2) As m \r
+ ORDER BY i, j, i*j*m)</pgis:gset>\r
<pgis:gset ID='LineMSet' GeometryType='LINESTRINGM'>(SELECT ST_MakeLine(ST_SetSRID(ST_MakePointM(i,j,m),4326),ST_SetSRID(ST_MakePointM(j,i,m),4326)) As the_geom\r
FROM generate_series(-10,50,10) As i\r
CROSS JOIN generate_series(50,70, 20) As j\r
CROSS JOIN generate_series(1,2) As m\r
- WHERE NOT(i = j))</pgis:gset>\r
+ WHERE NOT(i = j) \r
+ ORDER BY i, j, m, i*j*m)</pgis:gset>\r
<pgis:gset ID='PolygonMSet' GeometryType='POLYGONM'>(SELECT ST_MakePolygon(ST_AddPoint(ST_AddPoint(ST_MakeLine(ST_SetSRID(ST_MakePointM(i+m,j,m),4326),ST_SetSRID(ST_MakePointM(j+m,i-m,m),4326)),ST_SetSRID(ST_MakePointM(i,j,m),4326)),ST_SetSRID(ST_MakePointM(i+m,j,m),4326))) As the_geom\r
FROM generate_series(-10,50,20) As i\r
CROSS JOIN generate_series(50,70, 20) As j\r
CROSS JOIN generate_series(1,2) As m\r
+ ORDER BY i, j, m, i*j*m\r
)</pgis:gset>\r
<pgis:gset ID='PointSet3D' GeometryType='POINT'>(SELECT ST_SetSRID(ST_MakePoint(i,j,k),4326) As the_geom\r
FROM generate_series(-10,50,20) As i\r
CROSS JOIN generate_series(40,70, 20) j\r
CROSS JOIN generate_series(1,2) k\r
- )</pgis:gset>\r
+ ORDER BY i,i*j, j*k, i + j + k)</pgis:gset>\r
<pgis:gset ID='LineSet3D' GeometryType='LINESTRING'>(SELECT ST_SetSRID(ST_MakeLine(ST_MakePoint(i,j,k), ST_MakePoint(i+k,j+k,k)),4326) As the_geom\r
FROM generate_series(-10,50,20) As i\r
CROSS JOIN generate_series(40,70, 20) j\r
CROSS JOIN generate_series(1,2) k\r
- )</pgis:gset>\r
+ ORDER BY i, j, i+j+k, k, i*j*k)</pgis:gset>\r
<pgis:gset ID='PolygonSet3D' GeometryType='POLYGON'>(SELECT ST_SetSRID(ST_MakePolygon(ST_AddPoint(ST_AddPoint(ST_MakeLine(ST_MakePoint(i+m,j,m),ST_MakePoint(j+m,i-m,m)),ST_MakePoint(i,j,m)),ST_MakePointM(i+m,j,m))),4326) As the_geom\r
FROM generate_series(-10,50,20) As i\r
CROSS JOIN generate_series(50,70, 20) As j\r
- CROSS JOIN generate_series(1,2) As m)</pgis:gset>\r
+ CROSS JOIN generate_series(1,2) As m\r
+ ORDER BY i, j, i+j+m, m, i*j*m)</pgis:gset>\r
\r
<pgis:gset ID='GCSet3D' GeometryType='GEOMETRYCOLLECTION' SkipUnary='1'>(SELECT ST_Collect(ST_Collect(ST_SetSRID(ST_MakePoint(i,j,m),4326),ST_SetSRID(ST_MakePolygon(ST_AddPoint(ST_AddPoint(ST_MakeLine(ST_MakePoint(i+m,j,m),ST_MakePoint(j+m,i-m,m)),ST_MakePoint(i,j,m)),ST_MakePointM(i+m,j,m))),4326))) As the_geom\r
FROM generate_series(-10,50,20) 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
+ )</pgis:gset>\r
\r
<!-- MULTIs start here -->\r
<pgis:gset ID='MultiPointSet' GeometryType='MULTIPOINT'>(SELECT ST_Collect(s.the_geom) As the_geom\r
FROM (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(40,70, 15) j) As s)</pgis:gset>\r
+ CROSS JOIN generate_series(40,70, 15) j\r
+ ) As s)</pgis:gset>\r
\r
<pgis:gset ID='MultiLineSet' GeometryType='MULTILINESTRING'>(SELECT ST_Collect(s.the_geom) As the_geom\r
FROM (SELECT ST_MakeLine(ST_SetSRID(ST_Point(i,j),4326),ST_SetSRID(ST_Point(j,i),4326)) As the_geom\r
FROM (SELECT ST_SetSRID(ST_MakePointM(i,j,m),4326) As the_geom\r
FROM generate_series(-10,50,10) As i\r
CROSS JOIN generate_series(50,70, 25) AS j\r
- CROSS JOIN generate_series(1,2) As m) As s)</pgis:gset>\r
+ CROSS JOIN generate_series(1,2) As m\r
+ ) As s)</pgis:gset>\r
\r
<pgis:gset ID='MultiLineMSet' GeometryType='MULTILINESTRINGM'>(SELECT ST_Collect(s.the_geom) As the_geom\r
FROM (SELECT ST_MakeLine(ST_SetSRID(ST_MakePointM(i,j,m),4326),ST_SetSRID(ST_MakePointM(j,i,m),4326)) As the_geom\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
-\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\r
+ ORDER BY i, j, i*j)</pgis:gset>\r
+ <pgis:gset ID='CircularStringSet' GeometryType='CIRCULARSTRING'>(SELECT ST_LineToCurve(ST_Boundary(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\r
+ ORDER BY i, j, i*j)</pgis:gset>\r
</pgis:gardencrashers>\r
\r
<xsl:template match='/chapter'>\r
- <!--Exclude this from testing - it crashes or already tested in special section -->\r
- <xsl:choose>\r
- <xsl:when test="$testversion = '1.3.5'">\r
- <xsl:variable name='fnexclude'>AddGeometryColumn DropGeometryColumn DropGeometryTable Populate_Geometry_Columns ST_CurveToLine ST_LineToCurve ST_IsValidReason ST_ContainsProperly ST_MinimumBoundingCircle</xsl:variable>\r
- </xsl:when>\r
- <xsl:otherwise>\r
- <xsl:variable name='fnexclude'>AddGeometryColumn DropGeometryColumn DropGeometryTable</xsl:variable>\r
- <!--Exclude curved geometries testing 1.3.5 it crashes the server for some functions thus preventing further testing -->\r
- <pgis:gardens>\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:gset ID='CircularStringSet' GeometryType='CIRCULARSTRING'>(SELECT ST_LineToCurve(ST_Boundary(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
- </xsl:otherwise>\r
- </xsl:choose>\r
<!--Start Test table creation, insert, drop -->\r
<xsl:for-each select="document('')//pgis:gardens/pgis:gset">\r
SELECT 'create,insert,drop Test: Start Testing Multi/<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
+ SELECT ST_AsEWKT(<xsl:value-of select="$fnname" />(<xsl:value-of select="$fnfakeparams" />)), ST_AsEWKT(foo1.the_geom) As ref_geom\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;\r
+ FROM (<xsl:value-of select="." />) As foo1\r
+ LIMIT 3;\r
COMMIT;\r
SELECT '<xsl:value-of select="$fnname" /><xsl:text> </xsl:text> <xsl:value-of select="@ID" />: End Testing <xsl:value-of select="@GeometryType" />';\r
<xsl:text>\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
+ SELECT ST_AsEWKT(<xsl:value-of select="$fnname" />(<xsl:value-of select="$fnfakeparams" />)), ST_AsEWKT(foo1.the_geom) As ref1_geom, ST_AsEWKT(foo2.the_geom) As ref2_geom\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="$from1" />) As foo1 CROSS JOIN (<xsl:value-of select="." />) As foo2\r
- ;\r
+ LIMIT 2;\r
COMMIT;\r
SELECT '<xsl:value-of select="$fnname" />(<xsl:value-of select="$fnargs" />) <xsl:text> </xsl:text> <xsl:value-of select="@ID" />: End Testing <xsl:value-of select="$geom1type" />, <xsl:value-of select="@GeometryType" />';\r
<xsl:text>\r