]> granicus.if.org Git - postgis/commitdiff
revise to better guarantee a deteriministic sort so can diff compare between 1.3...
authorRegina Obe <lr@pcorp.us>
Mon, 27 Apr 2009 16:09:04 +0000 (16:09 +0000)
committerRegina Obe <lr@pcorp.us>
Mon, 27 Apr 2009 16:09:04 +0000 (16:09 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@4025 b70326c6-7e19-0410-871a-916f4a2858ee

doc/xsl/postgis_gardentest.sql.xsl

index 87b6b52c38b9e51a5ae5312d733689518b485a4b..1c37d8a3d0f605a8b60527e084fcb2485c74688b 100644 (file)
@@ -10,7 +10,8 @@
         ******************************************************************** -->\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
@@ -230,13 +230,14 @@ SELECT  'Ending <xsl:value-of select="funcdef/function" />(<xsl:value-of select=
        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
@@ -257,14 +258,14 @@ SELECT '<xsl:value-of select="$fnname" /><xsl:text> </xsl:text><xsl:value-of sel
        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