[geos-commits] r4009 - trunk/tests/xmltester/tests

svn_geos at osgeo.org svn_geos at osgeo.org
Tue Sep 16 09:53:34 PDT 2014


Author: strk
Date: 2014-09-16 09:53:34 -0700 (Tue, 16 Sep 2014)
New Revision: 4009

Modified:
   trunk/tests/xmltester/tests/testLeaksBig.xml
Log:
Remove duplicated tests

The removed tests are already present in other xml files under general/
There's more to drop here too...

Modified: trunk/tests/xmltester/tests/testLeaksBig.xml
===================================================================
--- trunk/tests/xmltester/tests/testLeaksBig.xml	2014-09-16 15:37:49 UTC (rev 4008)
+++ trunk/tests/xmltester/tests/testLeaksBig.xml	2014-09-16 16:53:34 UTC (rev 4009)
@@ -1,106 +1,6 @@
 <run>
   <precisionModel scale="1.0" offsetx="0.0" offsety="0.0"/>
 
-<case>
-  <desc>P - point</desc>
-  <a>POINT(10 10)</a>
-<test>
-  <op name="getboundary" arg1="A">GEOMETRYCOLLECTION EMPTY</op>
-</test>
-</case>
-
-<case>
-  <desc>mP - MultiPoint</desc>
-  <a>MULTIPOINT((10 10), (20 20))</a>
-<test>
-  <op name="getboundary" arg1="A">GEOMETRYCOLLECTION EMPTY</op>
-</test>
-</case>
-
-<case>
-  <desc>L - Line</desc>
-  <a>LINESTRING(10 10, 20 20)
-  </a>
-<test>
-  <op name="getboundary" arg1="A">MULTIPOINT(10 10, 20 20)</op>
-</test>
-</case>
-
-<case>
-  <desc>L - closed</desc>
-  <a>LINESTRING(10 10, 20 20, 20 10, 10 10)</a>
-<test>
-  <op name="getboundary" arg1="A">MULTIPOINT EMPTY</op>
-</test>
-</case>
-
-<case>
-  <desc>L - self-intersecting with boundary</desc>
-  <a>LINESTRING(40 40, 100 100, 180 100, 180 180, 100 180, 100 100)</a>
-<test>
-  <op name="getboundary" arg1="A">MULTIPOINT(40 40, 100 100)</op>
-</test>
-</case>
-
-<case>
-  <desc>mL - 2 lines with common endpoint</desc>
-  <a>MULTILINESTRING(  (10 10, 20 20),   (20 20, 30 30))</a>
-<test>
-  <op name="getboundary" arg1="A">MULTIPOINT(10 10, 30 30)</op>
-</test>
-</case>
-
-<case>
-  <desc>mL - 3 lines with common endpoint</desc>
-  <a>MULTILINESTRING(  (10 10, 20 20),   (20 20, 30 20),   (20 20, 30 30))</a>
-<test>
-  <op name="getboundary" arg1="A">MULTIPOINT(10 10, 20 20, 30 20, 30 30)</op>
-</test>
-</case>
-
-<case>
-  <desc>mL - 4 lines with common endpoint</desc>
-  <a>MULTILINESTRING(  (10 10, 20 20),   (20 20, 30 20),   (20 20, 30 30),   (20 20, 30 40))</a>
-<test>
-  <op name="getboundary" arg1="A">MULTIPOINT((10 10), (30 20), (30 30), (30 40))</op>
-</test>
-</case>
-
-<case>
-  <desc>mL - 2 lines, one closed, with common endpoint</desc>
-  <a>MULTILINESTRING(  (10 10, 20 20),   (20 20, 20 30, 30 30, 30 20, 20 20))</a>
-<test>
-  <op name="getboundary" arg1="A">MULTIPOINT(10 10, 20 20)</op>
-</test>
-</case>
-
-<case>
-  <desc>L - 1 line, self-intersecting, topologically equal to prev case</desc>
-  <a>MULTILINESTRING(  (10 10, 20 20, 20 30, 30 30, 30 20, 20 20))</a>
-<test>
-  <op name="getboundary" arg1="A">MULTIPOINT(10 10, 20 20)</op>
-</test>
-</case>
-
-<case>
-  <desc>A - polygon with no holes</desc>
-  <a>POLYGON(  (40 60, 420 60, 420 320, 40 320, 40 60))</a>
-<test>
-  <op name="getboundary" arg1="A">LINESTRING(40 60, 420 60, 420 320, 40 320, 40 60)</op>
-</test>
-</case>
-
-<case>
-  <desc>A - polygon with 1 hole</desc>
-  <a>POLYGON(  (40 60, 420 60, 420 320, 40 320, 40 60),   (200 140, 160 220, 260 200, 200 140))</a>
-<test>
-  <op name="getboundary" arg1="A">
-  MULTILINESTRING((40 60, 420 60, 420 320, 40 320, 40 60), (200 140, 160 220, 260 200, 200 140))
-  </op>
-</test>
-</case>
-
-
    <case>
       <desc>SegFault</desc>
       <a>POLYGON((1033707.6 1048313.1,1033694.9 1048315.7,1033659.9 1048344.3,1033627.6 1048388.8,1033620.9 1048426.8,1033623.6 1048471.3,1033623.6 1048480.8,1033616.8 1048503.2,1033629.1 1048541.3,1033668.3 1048707.6,1033696.3 1048755.6,1033721.4 1048771.6,1033724.5 1048772,1033737.2 1048772,1033772.1 1048756.4,1033794.6 1048721.9,1033811.1 1048667.4,1033814.8 1048613.6,1033815.1 1048597.5,1033809.2 1048556.1,1033809.3 1048549.6,1033797.1 1048501.9,1033790.9 1048492.2,1033773 1048399.6,1033760.6 1048377.6,1033741.8 1048357.8,1033742.1 1048341.8,1033713.9 1048313.4,1033707.6 1048313.1))</a>
@@ -1224,361 +1124,7 @@
 </test>
 </case>
 
-
 <case>
-  <desc>LL - A crosses B</desc>
-  <a>
-    LINESTRING(0 0, 100 100)
-  </a>
-  <b>
-    LINESTRING(0 100, 100 0)
-  </b>
-<test>
-  <op name="intersection" arg1="A" arg2="B">
-    POINT(50 50)
-  </op>
-</test>
-<test>
-  <op name="union" arg1="A" arg2="B">
-    MULTILINESTRING(
-      (0 0, 50 50), 
-      (0 100, 50 50), 
-      (50 50, 100 100), 
-      (50 50, 100 0))
-  </op>
-</test>
-<test>
-  <op name="difference" arg1="A" arg2="B">
-    MULTILINESTRING(
-      (0 0, 50 50), 
-      (50 50, 100 100))
-  </op>
-</test>
-<test>
-  <op name="symdifference" arg1="A" arg2="B">
-    MULTILINESTRING(
-      (0 0, 50 50), 
-      (0 100, 50 50), 
-      (50 50, 100 100), 
-      (50 50, 100 0))
-  </op>
-</test>
-</case>
-
-<case>
-  <desc>LL - A shares one segment with B</desc>
-  <a>
-    LINESTRING(0 0, 100 100, 200 0)
-  </a>
-  <b>
-    LINESTRING(0 0, 100 100, 200 200)
-  </b>
-<test>
-  <op name="intersection" arg1="A" arg2="B">
-    LINESTRING(0 0, 100 100)
-  </op>
-</test>
-<test>
-  <op name="union" arg1="A" arg2="B">
-    MULTILINESTRING(
-      (0 0, 100 100), 
-      (100 100, 200 200), 
-      (100 100, 200 0))
-  </op>
-</test>
-<test>
-  <op name="difference" arg1="A" arg2="B">
-    LINESTRING(100 100, 200 0)
-  </op>
-</test>
-<test>
-  <op name="symdifference" arg1="A" arg2="B">
-    MULTILINESTRING(
-      (100 100, 200 200), 
-      (100 100, 200 0))
-  </op>
-</test>
-</case>
-
-<case>
-  <desc>LL - A and B disjoint</desc>
-  <a>
-    LINESTRING(40 360, 40 220, 120 360)
-  </a>
-  <b>
-    LINESTRING(120 340, 60 220, 140 220, 140 360)
-  </b>
-<test>
-  <op name="getboundary" arg1="A">
-    MULTIPOINT(40 360, 120 360)
-  </op>
-</test>
-<test>
-  <op name="convexhull" arg1="A">
-    POLYGON(
-      (40 220, 40 360, 120 360, 40 220))
-  </op>
-</test>
-<test>
-  <op name="intersection" arg1="A" arg2="B">
-    GEOMETRYCOLLECTION EMPTY</op>
-</test>
-<test>
-  <op name="union" arg1="A" arg2="B">
-    MULTILINESTRING(
-      (40 360, 40 220, 120 360), 
-      (120 340, 60 220, 140 220, 140 360))
-  </op>
-</test>
-<test>
-  <op name="difference" arg1="A" arg2="B">
-    LINESTRING(40 360, 40 220, 120 360)
-  </op>
-</test>
-<test>
-  <op name="symdifference" arg1="A" arg2="B">
-    MULTILINESTRING(
-      (40 360, 40 220, 120 360), 
-      (120 340, 60 220, 140 220, 140 360))
-  </op>
-</test>
-</case>
-
-<case>
-  <desc>LL - A and B intersect frequently</desc>
-  <a>
-    LINESTRING(220 240, 200 220, 60 320, 40 300, 180 200, 160 180, 20 280)
-  </a>
-  <b>
-    LINESTRING(220 240, 140 160, 120 180, 220 280, 200 300, 100 200)
-  </b>
-<test>
-  <op name="getboundary" arg1="A">
-    MULTIPOINT(220 240, 20 280)
-  </op>
-</test>
-<test>
-  <op name="convexhull" arg1="A">
-    POLYGON(
-      (160 180, 20 280, 60 320, 220 240, 160 180))
-  </op>
-</test>
-<test>
-  <op name="intersection" arg1="A" arg2="B">
-    GEOMETRYCOLLECTION(
-      POINT(113 213), 
-      POINT(133 233), 
-      POINT(137 197), 
-      POINT(153 253), 
-      POINT(157 217), 
-      POINT(177 237), 
-      LINESTRING(180 200, 160 180), 
-      LINESTRING(220 240, 200 220))
-  </op>
-</test>
-<test>
-  <op name="union" arg1="A" arg2="B">
-    MULTILINESTRING(
-      (113 213, 20 280), 
-      (133 233, 113 213), 
-      (113 213, 100 200), 
-      (137 197, 113 213), 
-      (153 253, 133 233), 
-      (153 253, 60 320, 40 300, 133 233), 
-      (133 233, 157 217), 
-      (137 197, 157 217), 
-      (160 180, 140 160, 120 180, 137 197), 
-      (160 180, 137 197), 
-      (177 237, 220 280, 200 300, 153 253), 
-      (177 237, 153 253), 
-      (157 217, 177 237), 
-      (157 217, 180 200), 
-      (180 200, 160 180), 
-      (200 220, 177 237), 
-      (200 220, 180 200), 
-      (220 240, 200 220))
-  </op>
-</test>
-<test>
-  <op name="difference" arg1="A" arg2="B">
-    MULTILINESTRING(
-      (200 220, 177 237), 
-      (177 237, 153 253), 
-      (153 253, 60 320, 40 300, 133 233), 
-      (133 233, 157 217), 
-      (157 217, 180 200), 
-      (160 180, 137 197), 
-      (137 197, 113 213), 
-      (113 213, 20 280))
-  </op>
-</test>
-<test>
-  <op name="symdifference" arg1="A" arg2="B">
-    MULTILINESTRING(
-      (200 220, 177 237), 
-      (177 237, 153 253), 
-      (153 253, 60 320, 40 300, 133 233), 
-      (133 233, 157 217), 
-      (157 217, 180 200), 
-      (160 180, 137 197), 
-      (137 197, 113 213), 
-      (113 213, 20 280), 
-      (200 220, 180 200), 
-      (160 180, 140 160, 120 180, 137 197), 
-      (137 197, 157 217), 
-      (157 217, 177 237), 
-      (177 237, 220 280, 200 300, 153 253), 
-      (153 253, 133 233), 
-      (133 233, 113 213), 
-      (113 213, 100 200))
-  </op>
-</test>
-</case>
-
-<case>
-  <desc>LL - A and B equal</desc>
-  <a>
-    LINESTRING(80 320, 220 320, 220 160, 80 300)
-  </a>
-  <b>
-    LINESTRING(80 320, 220 320, 220 160, 80 300)
-  </b>
-<test>
-  <op name="getboundary" arg1="A">
-    MULTIPOINT(80 320, 80 300)
-  </op>
-</test>
-<test>
-  <op name="convexhull" arg1="A">
-    POLYGON(
-      (220 160, 80 300, 80 320, 220 320, 220 160))
-  </op>
-</test>
-<test>
-  <op name="intersection" arg1="A" arg2="B">
-    MULTILINESTRING(
-      (220 160, 80 300), 
-      (80 320, 220 320), 
-      (220 320, 220 160))
-  </op>
-</test>
-<test>
-  <op name="union" arg1="A" arg2="B">
-    MULTILINESTRING(
-      (220 160, 80 300), 
-      (80 320, 220 320), 
-      (220 320, 220 160))
-  </op>
-</test>
-<test>
-  <op name="difference" arg1="A" arg2="B">
-    GEOMETRYCOLLECTION EMPTY</op>
-</test>
-<test>
-  <op name="symdifference" arg1="A" arg2="B">
-    GEOMETRYCOLLECTION EMPTY</op>
-</test>
-</case>
-
-<case>
-  <desc>LL - A and B touch ends</desc>
-  <a>
-    LINESTRING(60 200, 60 260, 140 200)
-  </a>
-  <b>
-    LINESTRING(60 200, 60 140, 140 200)
-  </b>
-<test>
-  <op name="getboundary" arg1="A">
-    MULTIPOINT(60 200, 140 200)
-  </op>
-</test>
-<test>
-  <op name="convexhull" arg1="A">
-    POLYGON(
-      (60 200, 60 260, 140 200, 60 200))
-  </op>
-</test>
-<test>
-  <op name="intersection" arg1="A" arg2="B">
-    MULTIPOINT(60 200, 140 200)
-  </op>
-</test>
-<test>
-  <op name="union" arg1="A" arg2="B">
-    MULTILINESTRING(
-      (60 200, 60 260, 140 200), 
-      (60 200, 60 140, 140 200))
-  </op>
-</test>
-<test>
-  <op name="difference" arg1="A" arg2="B">
-    LINESTRING(60 200, 60 260, 140 200)
-  </op>
-</test>
-<test>
-  <op name="symdifference" arg1="A" arg2="B">
-    MULTILINESTRING(
-      (60 200, 60 260, 140 200), 
-      (60 200, 60 140, 140 200))
-  </op>
-</test>
-</case>
-
-<case>
-  <desc>LL - intersecting rings</desc>
-  <a>
-    LINESTRING(180 200, 100 280, 20 200, 100 120, 180 200)
-  </a>
-  <b>
-    LINESTRING(100 200, 220 200, 220 80, 100 80, 100 200)
-  </b>
-<test>
-  <op name="getboundary" arg1="A">
-    MULTIPOINT EMPTY</op>
-</test>
-<test>
-  <op name="convexhull" arg1="A">
-    POLYGON(
-      (100 120, 20 200, 100 280, 180 200, 100 120))
-  </op>
-</test>
-<test>
-  <op name="intersection" arg1="A" arg2="B">
-    MULTIPOINT(100 120, 180 200)
-  </op>
-</test>
-<test>
-  <op name="union" arg1="A" arg2="B">
-    MULTILINESTRING(
-      (100 120, 180 200), 
-      (100 120, 100 200), 
-      (180 200, 100 280, 20 200, 100 120), 
-      (180 200, 220 200, 220 80, 100 80, 100 120), 
-      (100 200, 180 200))
-  </op>
-</test>
-<test>
-  <op name="difference" arg1="A" arg2="B">
-    MULTILINESTRING(
-      (100 120, 180 200), 
-      (180 200, 100 280, 20 200, 100 120))
-  </op>
-</test>
-<test>
-  <op name="symdifference" arg1="A" arg2="B">
-    MULTILINESTRING(
-      (100 120, 180 200), 
-      (100 120, 100 200), 
-      (180 200, 100 280, 20 200, 100 120), 
-      (180 200, 220 200, 220 80, 100 80, 100 120), 
-      (100 200, 180 200))
-  </op>
-</test>
-</case>
-
-
-<case>
   <desc>PA - point contained in simple polygon</desc>
   <a>
     POINT(100 100)
@@ -2277,888 +1823,6 @@
 </case>
 
 <case>
-  <desc>AA - sliver triangle, cut by polygon</desc>
-  <a>
-    POLYGON(
-      (10 10, 100 10, 10 11, 10 10))
-  </a>
-  <b>
-    POLYGON(
-      (90 0, 200 0, 200 200, 90 200, 90 0))
-  </b>
-<test>
-  <op name="relate" arg3="212101212" arg1="A" arg2="B">
-    true
-  </op>
-</test>
-<test>
-  <op name="intersection" arg1="A" arg2="B">
-    LINESTRING(90 10, 100 10)
-  </op>
-</test>
-<test>
-  <op name="union" arg1="A" arg2="B">
-    MULTIPOLYGON(
-      (
-        (90 10, 10 10, 10 11, 90 10)), 
-      (
-        (90 10, 90 200, 200 200, 200 0, 90 0, 90 10)))
-  </op>
-</test>
-<test>
-  <op name="difference" arg1="A" arg2="B">
-    POLYGON(
-      (90 10, 10 10, 10 11, 90 10))
-  </op>
-</test>
-<test>
-  <op name="symdifference" arg1="A" arg2="B">
-    MULTIPOLYGON(
-      (
-        (90 10, 10 10, 10 11, 90 10)), 
-      (
-        (90 10, 90 200, 200 200, 200 0, 90 0, 90 10)))
-  </op>
-</test>
-</case>
-
-<case>
-  <desc>AA - polygon with outward sliver, cut by polygon</desc>
-  <a>
-    POLYGON(
-      (100 10, 10 10, 90 11, 90 20, 100 20, 100 10))
-  </a>
-  <b>
-    POLYGON(
-      (20 20, 0 20, 0 0, 20 0, 20 20))
-  </b>
-<test>
-  <op name="relate" arg3="212101212" arg1="A" arg2="B">
-    true
-  </op>
-</test>
-<test>
-  <op name="intersection" arg1="A" arg2="B">
-    LINESTRING(20 10, 10 10)
-  </op>
-</test>
-</case>
-
-<case>
-  <desc>AA - narrow wedge in polygon</desc>
-  <a>
-    POLYGON(
-      (10 10, 50 10, 50 50, 10 50, 10 31, 49 30, 10 30, 10 10))
-  </a>
-  <b>
-    POLYGON(
-      (60 40, 40 40, 40 20, 60 20, 60 40))
-  </b>
-<test>
-  <op name="relate" arg3="212101212" arg1="A" arg2="B">
-    true
-  </op>
-</test>
-<test>
-  <op name="intersection" arg1="A" arg2="B">
-    POLYGON(
-      (50 40, 50 20, 40 20, 40 30, 40 40, 50 40))
-  </op>
-</test>
-<test>
-  <op name="union" arg1="A" arg2="B">
-    POLYGON(
-      (50 20, 50 10, 10 10, 10 30, 40 30, 10 31, 10 50, 50 50, 50 40, 
-      60 40, 60 20, 50 20))
-  </op>
-</test>
-<test>
-  <op name="difference" arg1="A" arg2="B">
-    MULTIPOLYGON(
-      (
-        (50 20, 50 10, 10 10, 10 30, 40 30, 40 20, 50 20)), 
-      (
-        (40 30, 10 31, 10 50, 50 50, 50 40, 40 40, 40 30)))
-  </op>
-</test>
-<test>
-  <op name="symdifference" arg1="A" arg2="B">
-    MULTIPOLYGON(
-      (
-        (50 20, 50 10, 10 10, 10 30, 40 30, 40 20, 50 20)), 
-      (
-        (50 20, 50 40, 60 40, 60 20, 50 20)), 
-      (
-        (40 30, 10 31, 10 50, 50 50, 50 40, 40 40, 40 30)))
-  </op>
-</test>
-</case>
-
-<case>
-  <desc>AA - hole close to shell</desc>
-  <a>
-    POLYGON(
-      (10 100, 10 10, 100 10, 100 100, 10 100), 
-      (90 90, 11 90, 10 10, 90 11, 90 90))
-  </a>
-  <b>
-    POLYGON(
-      (0 30, 0 0, 30 0, 30 30, 0 30))
-  </b>
-<test>
-  <op name="relate" arg3="212101212" arg1="A" arg2="B">
-    true
-  </op>
-</test>
-<test>
-  <op name="intersection" arg1="A" arg2="B">
-    MULTILINESTRING(
-      (10 30, 10 10), 
-      (10 10, 30 10))
-  </op>
-</test>
-<test>
-  <op name="union" arg1="A" arg2="B">
-    MULTIPOLYGON(
-      (
-        (10 30, 10 100, 100 100, 100 10, 30 10, 90 11, 90 90, 11 90, 10 30)), 
-      (
-        (30 10, 30 0, 0 0, 0 30, 10 30, 30 30, 30 10)))
-  </op>
-</test>
-<test>
-  <op name="difference" arg1="A" arg2="B">
-    POLYGON(
-      (10 30, 10 100, 100 100, 100 10, 30 10, 90 11, 90 90, 11 90, 10 30))
-  </op>
-</test>
-<test>
-  <op name="symdifference" arg1="A" arg2="B">
-    MULTIPOLYGON(
-      (
-        (10 30, 10 100, 100 100, 100 10, 30 10, 90 11, 90 90, 11 90, 10 30)), 
-      (
-        (30 10, 30 0, 0 0, 0 30, 10 30, 30 30, 30 10)))
-  </op>
-</test>
-</case>
-
-<case>
-  <desc>mAA - shells close together</desc>
-  <a>
-    MULTIPOLYGON(
-      (
-        (0 0, 100 0, 100 20, 0 20, 0 0)), 
-      (
-        (0 40, 0 21, 100 20, 100 40, 0 40)))
-  </a>
-  <b>
-    POLYGON(
-      (110 30, 90 30, 90 10, 110 10, 110 30))
-  </b>
-<test>
-  <op name="relate" arg3="212101212" arg1="A" arg2="B">
-    true
-  </op>
-</test>
-<test>
-  <op name="intersection" arg1="A" arg2="B">
-    GEOMETRYCOLLECTION(
-      LINESTRING(100 20, 90 20), 
-      POLYGON(
-        (100 20, 100 10, 90 10, 90 20, 90 30, 100 30, 100 20)))
-  </op>
-</test>
-<test>
-  <op name="union" arg1="A" arg2="B">
-    POLYGON(
-      (100 10, 100 0, 0 0, 0 20, 90 20, 0 21, 0 40, 100 40, 100 30, 
-      110 30, 110 10, 100 10))
-  </op>
-</test>
-<test>
-  <op name="difference" arg1="A" arg2="B">
-    MULTIPOLYGON(
-      (
-        (100 10, 100 0, 0 0, 0 20, 90 20, 90 10, 100 10)), 
-      (
-        (90 20, 0 21, 0 40, 100 40, 100 30, 90 30, 90 20)))
-  </op>
-</test>
-<test>
-  <op name="symdifference" arg1="A" arg2="B">
-    MULTIPOLYGON(
-      (
-        (100 10, 100 0, 0 0, 0 20, 90 20, 90 10, 100 10)), 
-      (
-        (100 10, 100 20, 100 30, 110 30, 110 10, 100 10)), 
-      (
-        (90 20, 0 21, 0 40, 100 40, 100 30, 90 30, 90 20)))
-  </op>
-</test>
-</case>
-
-<case>
-  <desc>AA - A sliver triangle cutting all the way across B</desc>
-  <a>
-    POLYGON(
-      (100 10, 0 10, 100 11, 100 10))
-  </a>
-  <b>
-    POLYGON(
-      (20 20, 0 20, 0 0, 20 0, 20 20))
-  </b>
-<test>
-  <op name="relate" arg3="212101212" arg1="A" arg2="B">
-    true
-  </op>
-</test>
-<test>
-  <op name="intersection" arg1="A" arg2="B">
-    LINESTRING(20 10, 0 10)
-  </op>
-</test>
-<test>
-  <op name="union" arg1="A" arg2="B">
-    MULTIPOLYGON(
-      (
-        (100 10, 20 10, 100 11, 100 10)), 
-      (
-        (0 10, 0 20, 20 20, 20 10, 20 0, 0 0, 0 10)))
-  </op>
-</test>
-<test>
-  <op name="difference" arg1="A" arg2="B">
-    POLYGON(
-      (100 10, 20 10, 100 11, 100 10))
-  </op>
-</test>
-<test>
-  <op name="symdifference" arg1="A" arg2="B">
-    MULTIPOLYGON(
-      (
-        (100 10, 20 10, 100 11, 100 10)), 
-      (
-        (0 10, 0 20, 20 20, 20 10, 20 0, 0 0, 0 10)))
-  </op>
-</test>
-</case>
-
-<case>
-  <desc>AA - A polygon with sliver cutting all the way across B</desc>
-  <a>
-    POLYGON(
-      (100 10, 0 10, 90 11, 90 20, 100 20, 100 10))
-  </a>
-  <b>
-    POLYGON(
-      (20 20, 0 20, 0 0, 20 0, 20 20))
-  </b>
-<test>
-  <op name="relate" arg3="212101212" arg1="A" arg2="B">
-    true
-  </op>
-</test>
-<test>
-  <op name="intersection" arg1="A" arg2="B">
-    LINESTRING(20 10, 0 10)
-  </op>
-</test>
-<test>
-  <op name="union" arg1="A" arg2="B">
-    MULTIPOLYGON(
-      (
-        (100 10, 20 10, 90 11, 90 20, 100 20, 100 10)), 
-      (
-        (0 10, 0 20, 20 20, 20 10, 20 0, 0 0, 0 10)))
-  </op>
-</test>
-</case>
-
-<case>
-  <desc>AA - hole close to shell, B coincident with A</desc>
-  <a>
-    POLYGON(
-      (10 100, 10 10, 100 10, 100 100, 10 100), 
-      (90 90, 11 90, 10 10, 90 11, 90 90))
-  </a>
-  <b>
-    POLYGON(
-      (10 30, 10 0, 30 10, 30 30, 10 30))
-  </b>
-<test>
-  <op name="relate" arg3="212111212" arg1="A" arg2="B">
-    true
-  </op>
-</test>
-<test>
-  <op name="intersection" arg1="A" arg2="B">
-    MULTILINESTRING(
-      (10 30, 10 10), 
-      (10 10, 30 10))
-  </op>
-</test>
-<test>
-  <op name="union" arg1="A" arg2="B">
-    MULTIPOLYGON(
-      (
-        (10 30, 10 100, 100 100, 100 10, 30 10, 90 11, 90 90, 11 90, 10 30)), 
-      (
-        (10 10, 10 30, 30 30, 30 10, 10 0, 10 10)))
-  </op>
-</test>
-<test>
-  <op name="difference" arg1="A" arg2="B">
-    POLYGON(
-      (10 30, 10 100, 100 100, 100 10, 30 10, 90 11, 90 90, 11 90, 10 30))
-  </op>
-</test>
-<test>
-  <op name="symdifference" arg1="A" arg2="B">
-    MULTIPOLYGON(
-      (
-        (10 30, 10 100, 100 100, 100 10, 30 10, 90 11, 90 90, 11 90, 10 30)), 
-      (
-        (10 10, 10 30, 30 30, 30 10, 10 0, 10 10)))
-  </op>
-</test>
-</case>
-
-<case>
-  <desc>AA - A hole close to shell, B coincident with A</desc>
-  <a>
-    POLYGON(
-      (10 100, 10 10, 100 10, 100 100, 10 100), 
-      (90 90, 11 90, 10 10, 90 11, 90 90))
-  </a>
-  <b>
-    POLYGON(
-      (10 30, 10 10, 30 10, 30 30, 10 30))
-  </b>
-<test>
-  <op name="relate" arg3="212111212" arg1="A" arg2="B">
-    true
-  </op>
-</test>
-<test>
-  <op name="intersection" arg1="A" arg2="B">
-    MULTILINESTRING(
-      (10 30, 10 10), 
-      (10 10, 30 10))
-  </op>
-</test>
-<test>
-  <op name="union" arg1="A" arg2="B">
-    MULTIPOLYGON(
-      (
-        (10 30, 10 100, 100 100, 100 10, 30 10, 90 11, 90 90, 11 90, 10 30)), 
-      (
-        (10 10, 10 30, 30 30, 30 10, 10 10)))
-  </op>
-</test>
-<test>
-  <op name="difference" arg1="A" arg2="B">
-    POLYGON(
-      (10 30, 10 100, 100 100, 100 10, 30 10, 90 11, 90 90, 11 90, 10 30))
-  </op>
-</test>
-<test>
-  <op name="symdifference" arg1="A" arg2="B">
-    MULTIPOLYGON(
-      (
-        (10 30, 10 100, 100 100, 100 10, 30 10, 90 11, 90 90, 11 90, 10 30)), 
-      (
-        (10 10, 10 30, 30 30, 30 10, 10 10)))
-  </op>
-</test>
-</case>
-
-<case>
-  <desc>AA - B hole close to shell, A coincident with B</desc>
-  <a>
-    POLYGON(
-      (10 30, 10 10, 30 10, 30 30, 10 30))
-  </a>
-  <b>
-    POLYGON(
-      (10 100, 10 10, 100 10, 100 100, 10 100), 
-      (90 90, 11 90, 10 10, 90 11, 90 90))
-  </b>
-<test>
-  <op name="relate" arg3="212111212" arg1="A" arg2="B">
-    true
-  </op>
-</test>
-<test>
-  <op name="intersection" arg1="A" arg2="B">
-    MULTILINESTRING(
-      (10 30, 10 10), 
-      (10 10, 30 10))
-  </op>
-</test>
-<test>
-  <op name="union" arg1="A" arg2="B">
-    MULTIPOLYGON(
-      (
-        (10 30, 10 100, 100 100, 100 10, 30 10, 90 11, 90 90, 11 90, 10 30)), 
-      (
-        (10 10, 10 30, 30 30, 30 10, 10 10)))
-  </op>
-</test>
-<test>
-  <op name="difference" arg1="A" arg2="B">
-    POLYGON(
-      (10 10, 10 30, 30 30, 30 10, 10 10))
-  </op>
-</test>
-<test>
-  <op name="symdifference" arg1="A" arg2="B">
-    MULTIPOLYGON(
-      (
-        (10 30, 10 100, 100 100, 100 10, 30 10, 90 11, 90 90, 11 90, 10 30)), 
-      (
-        (10 10, 10 30, 30 30, 30 10, 10 10)))
-  </op>
-</test>
-</case>
-
-<case>
-  <desc>AA - B sliver crossing A triangle in line segment with length < 1</desc>
-  <a>
-    POLYGON(
-      (0 0, 200 0, 0 198, 0 0))
-  </a>
-  <b>
-    POLYGON(
-      (280 60, 139 60, 280 70, 280 60))
-  </b>
-<test>
-  <op name="relate" arg3="212101212" arg1="A" arg2="B">
-    true
-  </op>
-</test>
-<test>
-  <op name="intersection" arg1="A" arg2="B">
-    POINT(139 60)
-  </op>
-</test>
-<test>
-  <op name="union" arg1="A" arg2="B">
-    MULTIPOLYGON(
-      (
-        (139 60, 200 0, 0 0, 0 198, 139 60)), 
-      (
-        (280 60, 139 60, 280 70, 280 60)))
-  </op>
-</test>
-<test>
-  <op name="difference" arg1="A" arg2="B">
-    POLYGON(
-      (139 60, 200 0, 0 0, 0 198, 139 60))
-  </op>
-</test>
-<test>
-  <op name="symdifference" arg1="A" arg2="B">
-    MULTIPOLYGON(
-      (
-        (139 60, 200 0, 0 0, 0 198, 139 60)), 
-      (
-        (280 60, 139 60, 280 70, 280 60)))
-  </op>
-</test>
-</case>
-
-<case>
-  <desc>AA - sliver triangles, at angle to each other</desc>
-  <a>
-    POLYGON(
-      (0 0, 140 10, 0 20, 0 0))
-  </a>
-  <b>
-    POLYGON(
-      (280 0, 139 10, 280 1, 280 0))
-  </b>
-<test>
-  <op name="intersection" arg1="A" arg2="B">
-    LINESTRING(140 10, 139 10)
-  </op>
-</test>
-</case>
-
-<case>
-  <desc>AA - sliver triangle with multiple intersecting boxes</desc>
-  <a>
-    MULTIPOLYGON(
-      (
-        (1 4, 1 1, 2 1, 2 4, 1 4)), 
-      (
-        (3 4, 3 1, 4 1, 4 4, 3 4)), 
-      (
-        (5 4, 5 1, 6 1, 6 4, 5 4)), 
-      (
-        (7 4, 7 1, 8 1, 8 4, 7 4)), 
-      (
-        (9 4, 9 1, 10 1, 10 4, 9 4)))
-  </a>
-  <b>
-    POLYGON(
-      (0 2, 11 3, 11 2, 0 2))
-  </b>
-<test>
-  <op name="convexhull" arg1="A">
-    POLYGON(
-      (1 1, 1 4, 10 4, 10 1, 1 1))
-  </op>
-</test>
-<test>
-  <op name="intersection" arg1="A" arg2="B">
-    GEOMETRYCOLLECTION(
-      LINESTRING(1 2, 2 2), 
-      LINESTRING(3 2, 4 2), 
-      POLYGON(
-        (6 3, 6 2, 5 2, 6 3)), 
-      POLYGON(
-        (7 2, 7 3, 8 3, 8 2, 7 2)), 
-      POLYGON(
-        (9 2, 9 3, 10 3, 10 2, 9 2)))
-  </op>
-</test>
-<test>
-  <op name="union" arg1="A" arg2="B">
-GEOMETRYCOLLECTION(
-  LINESTRING(0 2, 1 2), 
-  LINESTRING(2 2, 3 2), 
-  LINESTRING(4 2, 5 2), 
-  POLYGON(
-    (1 2, 1 4, 2 4, 2 2, 2 1, 1 1, 1 2)), 
-  POLYGON(
-    (3 2, 3 4, 4 4, 4 2, 4 1, 3 1, 3 2)), 
-  POLYGON(
-    (5 2, 5 4, 6 4, 6 3, 7 3, 7 4, 8 4, 8 3, 9 3, 
-    9 4, 10 4, 10 3, 11 3, 11 2, 10 2, 10 1, 9 1, 9 2, 8 2, 
-    8 1, 7 1, 7 2, 6 2, 6 1, 5 1, 5 2)))  </op>
-</test>
-<test>
-  <op name="difference" arg1="A" arg2="B">
-    MULTIPOLYGON(
-      (
-        (1 2, 1 4, 2 4, 2 2, 2 1, 1 1, 1 2)), 
-      (
-        (3 2, 3 4, 4 4, 4 2, 4 1, 3 1, 3 2)), 
-      (
-        (5 2, 5 4, 6 4, 6 3, 5 2)), 
-      (
-        (6 2, 6 1, 5 1, 5 2, 6 2)), 
-      (
-        (7 3, 7 4, 8 4, 8 3, 7 3)), 
-      (
-        (8 2, 8 1, 7 1, 7 2, 8 2)), 
-      (
-        (9 3, 9 4, 10 4, 10 3, 9 3)), 
-      (
-        (10 2, 10 1, 9 1, 9 2, 10 2)))
-  </op>
-</test>
-<test>
-  <op name="symdifference" arg1="A" arg2="B">
-GEOMETRYCOLLECTION(
-  LINESTRING(0 2, 1 2), 
-  LINESTRING(2 2, 3 2), 
-  LINESTRING(4 2, 5 2), 
-  POLYGON(
-    (1 2, 1 4, 2 4, 2 2, 2 1, 1 1, 1 2)), 
-  POLYGON(
-    (3 2, 3 4, 4 4, 4 2, 4 1, 3 1, 3 2)), 
-  POLYGON(
-    (5 2, 5 4, 6 4, 6 3, 5 2)), 
-  POLYGON(
-    (6 2, 6 1, 5 1, 5 2, 6 2)), 
-  POLYGON(
-    (6 2, 6 3, 7 3, 7 2, 6 2)), 
-  POLYGON(
-    (7 3, 7 4, 8 4, 8 3, 7 3)), 
-  POLYGON(
-    (8 2, 8 1, 7 1, 7 2, 8 2)), 
-  POLYGON(
-    (8 2, 8 3, 9 3, 9 2, 8 2)), 
-  POLYGON(
-    (9 3, 9 4, 10 4, 10 3, 9 3)), 
-  POLYGON(
-    (10 2, 10 1, 9 1, 9 2, 10 2)), 
-  POLYGON(
-    (10 2, 10 3, 11 3, 11 2, 10 2)))
-  </op>
-</test>
-</case>
-
-<case>
-  <desc>AA - Polygon with hole with outward sliver, cut by polygon</desc>
-  <a>
-    POLYGON(
-      (20 40, 20 200, 180 200, 180 40, 20 40), 
-      (180 120, 120 120, 120 160, 60 120, 120 80, 120 119, 180 120))
-  </a>
-  <b>
-    POLYGON(
-      (200 160, 160 160, 160 80, 200 80, 200 160))
-  </b>
-<test>
-  <op name="convexhull" arg1="A">
-    POLYGON(
-      (20 40, 20 200, 180 200, 180 40, 20 40))
-  </op>
-</test>
-<test>
-  <op name="intersection" arg1="A" arg2="B">
-    GEOMETRYCOLLECTION(
-      LINESTRING(180 120, 160 120), 
-      POLYGON(
-        (180 160, 180 120, 180 80, 160 80, 160 120, 160 160, 180 160)))
-  </op>
-</test>
-<test>
-  <op name="union" arg1="A" arg2="B">
-    POLYGON(
-      (20 40, 20 200, 180 200, 180 160, 200 160, 200 80, 180 80, 180 40, 20 40), 
-      (160 120, 120 120, 120 160, 60 120, 120 80, 120 119, 160 120))
-  </op>
-</test>
-<test>
-  <op name="difference" arg1="A" arg2="B">
-    POLYGON(
-      (20 40, 20 200, 180 200, 180 160, 160 160, 160 120, 160 80, 180 80, 180 40, 
-      20 40), 
-      (160 120, 120 120, 120 160, 60 120, 120 80, 120 119, 160 120))
-  </op>
-</test>
-<test>
-  <op name="symdifference" arg1="A" arg2="B">
-    MULTIPOLYGON(
-      (
-        (20 40, 20 200, 180 200, 180 160, 160 160, 160 120, 160 80, 180 80, 180 40, 
-        20 40), 
-        (160 120, 120 120, 120 160, 60 120, 120 80, 120 119, 160 120)), 
-      (
-        (180 120, 180 160, 200 160, 200 80, 180 80, 180 120)))
-  </op>
-</test>
-</case>
-
-<case>
-  <desc>AA - Polygon with hole with outward sliver, cut by line</desc>
-  <a>
-    POLYGON(
-      (20 40, 20 200, 180 200, 180 40, 20 40), 
-      (180 120, 120 120, 120 160, 60 120, 120 80, 120 119, 180 120))
-  </a>
-  <b>
-    LINESTRING(160 140, 160 100)
-  </b>
-<test>
-  <op name="convexhull" arg1="A">
-    POLYGON(
-      (20 40, 20 200, 180 200, 180 40, 20 40))
-  </op>
-</test>
-<test>
-  <op name="intersection" arg1="A" arg2="B">
-    MULTILINESTRING(
-      (160 140, 160 120), 
-      (160 120, 160 100))
-  </op>
-</test>
-<test>
-  <op name="union" arg1="A" arg2="B">
-    POLYGON(
-      (20 40, 20 200, 180 200, 180 120, 180 40, 20 40), 
-      (160 120, 120 120, 120 160, 60 120, 120 80, 120 119, 160 120))
-  </op>
-</test>
-<test>
-  <op name="difference" arg1="A" arg2="B">
-    POLYGON(
-      (20 40, 20 200, 180 200, 180 120, 180 40, 20 40), 
-      (160 120, 120 120, 120 160, 60 120, 120 80, 120 119, 160 120))
-  </op>
-</test>
-<test>
-  <op name="symdifference" arg1="A" arg2="B">
-    POLYGON(
-      (20 40, 20 200, 180 200, 180 120, 180 40, 20 40), 
-      (160 120, 120 120, 120 160, 60 120, 120 80, 120 119, 160 120))
-  </op>
-</test>
-</case>
-
-<case>
-  <desc>AA - Polygon with inward sliver touching hole, cut by polygon</desc>
-  <a>
-    POLYGON(
-      (20 40, 20 200, 180 200, 180 120, 140 120, 180 119, 180 40, 20 40), 
-      (140 160, 80 120, 140 80, 140 160))
-  </a>
-  <b>
-    POLYGON(
-      (200 160, 150 160, 150 80, 200 80, 200 160))
-  </b>
-<test>
-  <op name="convexhull" arg1="A">
-    POLYGON(
-      (20 40, 20 200, 180 200, 180 40, 20 40))
-  </op>
-</test>
-<test>
-  <op name="intersection" arg1="A" arg2="B">
-    MULTIPOLYGON(
-      (
-        (180 160, 180 120, 150 120, 150 160, 180 160)), 
-      (
-        (150 120, 180 119, 180 80, 150 80, 150 120)))
-  </op>
-</test>
-<test>
-  <op name="union" arg1="A" arg2="B">
-    POLYGON(
-      (20 40, 20 200, 180 200, 180 160, 200 160, 200 80, 180 80, 180 40, 20 40), 
-      (140 160, 80 120, 140 80, 140 120, 140 160))
-  </op>
-</test>
-<test>
-  <op name="difference" arg1="A" arg2="B">
-    POLYGON(
-      (20 40, 20 200, 180 200, 180 160, 150 160, 150 120, 150 80, 180 80, 180 40, 
-      20 40), 
-      (140 160, 80 120, 140 80, 140 120, 140 160))
-  </op>
-</test>
-<test>
-  <op name="symdifference" arg1="A" arg2="B">
-    MULTIPOLYGON(
-      (
-        (20 40, 20 200, 180 200, 180 160, 150 160, 150 120, 150 80, 180 80, 180 40, 
-        20 40), 
-        (140 160, 80 120, 140 80, 140 120, 140 160)), 
-      (
-        (150 120, 180 120, 180 160, 200 160, 200 80, 180 80, 180 119, 150 120)))
-  </op>
-</test>
-</case>
-
-<case>
-  <desc>AA - intersecting slivers, dimensional collapse</desc>
-  <a>
-    POLYGON(
-      (83 33, 62 402, 68 402, 83 33))
-  </a>
-  <b>
-    POLYGON(
-      (78 39, 574 76, 576 60, 78 39))
-  </b>
-<test>
-  <op name="getboundary" arg1="A">
-    LINESTRING(
-      83 33, 62 402, 68 402, 83 33)
-  </op>
-</test>
-<test>
-  <op name="convexhull" arg1="A">
-    POLYGON(
-      (83 33, 62 402, 68 402, 83 33))
-  </op>
-</test>
-<test>
-  <op name="intersection" arg1="A" arg2="B">
-    POINT(83 39)
-  </op>
-</test>
-<test>
-  <op name="union" arg1="A" arg2="B">
-    GEOMETRYCOLLECTION(
-      LINESTRING(78 39, 83 39), 
-      LINESTRING(83 33, 83 39), 
-      POLYGON(
-        (83 39, 62 402, 68 402, 83 39)), 
-      POLYGON(
-        (83 39, 574 76, 576 60, 83 39)))
-  </op>
-</test>
-<test>
-  <op name="difference" arg1="A" arg2="B">
-    GEOMETRYCOLLECTION(
-      LINESTRING(83 33, 83 39), 
-      POLYGON(
-        (83 39, 62 402, 68 402, 83 39)))
-  </op>
-</test>
-<test>
-  <op name="symdifference" arg1="A" arg2="B">
-    GEOMETRYCOLLECTION(
-      LINESTRING(78 39, 83 39), 
-      LINESTRING(83 33, 83 39), 
-      POLYGON(
-        (83 39, 62 402, 68 402, 83 39)), 
-      POLYGON(
-        (83 39, 574 76, 576 60, 83 39)))
-  </op>
-</test>
-</case>
-
-<case>
-  <desc>LA - line and sliver intersecting, dimensional collapse</desc>
-  <a>
-    POLYGON(
-      (95 9, 81 414, 87 414, 95 9))
-  </a>
-  <b>
-    LINESTRING(93 13, 96 13)
-  </b>
-<test>
-  <op name="getboundary" arg1="A">
-    LINESTRING(
-      95 9, 81 414, 87 414, 95 9)
-  </op>
-</test>
-<test>
-  <op name="convexhull" arg1="A">
-    POLYGON(
-      (95 9, 81 414, 87 414, 95 9))
-  </op>
-</test>
-<test>
-  <op name="intersection" arg1="A" arg2="B">
-    POINT(95 13)
-  </op>
-</test>
-<test>
-  <op name="union" arg1="A" arg2="B">
-    GEOMETRYCOLLECTION(
-      LINESTRING(95 9, 95 13), 
-      POLYGON(
-        (95 13, 81 414, 87 414, 95 13)), 
-      LINESTRING(93 13, 95 13), 
-      LINESTRING(95 13, 96 13))
-  </op>
-</test>
-<test>
-  <op name="difference" arg1="A" arg2="B">
-    GEOMETRYCOLLECTION(
-      LINESTRING(95 9, 95 13), 
-      POLYGON(
-        (95 13, 81 414, 87 414, 95 13)))
-  </op>
-</test>
-<test>
-  <op name="symdifference" arg1="A" arg2="B">
-    GEOMETRYCOLLECTION(
-      LINESTRING(95 9, 95 13), 
-      POLYGON(
-        (95 13, 81 414, 87 414, 95 13)), 
-      LINESTRING(93 13, 95 13), 
-      LINESTRING(95 13, 96 13))
-  </op>
-</test>
-</case>
-<case>
   <desc>LL - narrow V</desc>
   <a>
     LINESTRING(0 10, 620 10, 0 11)



More information about the geos-commits mailing list