mirror of
https://github.com/bjornharrtell/jsts.git
synced 2026-01-18 14:08:37 +00:00
2834 lines
118 KiB
XML
2834 lines
118 KiB
XML
<run>
|
|
<precisionModel type="FLOATING"/>
|
|
|
|
<case>
|
|
<desc>A/A-1-1: same polygons [dim(2){A.A.Int = B.A.Int}, dim(1){A.A.Bdy.SP-EP = B.A.Bdy.SP-EP}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 20, 20 100, 120 100, 140 20, 20 20))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(20 20, 20 100, 120 100, 140 20, 20 20))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="2FFF1FFF2">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">true</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-1-2: same polygons with reverse sequence of points [dim(2){A.A.Int = B.A.Int}, dim(1){A.A.Bdy.SP-EP = B.A.Bdy.EP-SP}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 20, 20 100, 120 100, 140 20, 20 20))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(20 20, 140 20, 120 100, 20 100, 20 20))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="2FFF1FFF2">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">true</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-1-3: same polygons with different sequence of points [dim(2){A.A.Int = B.A.Int}, dim(1){A.A.Bdy.SP-EP = B.A.Bdy.SP-EP}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 20, 20 100, 120 100, 140 20, 20 20))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(120 100, 140 20, 20 20, 20 100, 120 100))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="2FFF1FFF2">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">true</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-1-4: same polygons with different number of points [dim(2){A.A.Int = B.A.Int}, dim(1){A.A.Bdy.SP-EP = B.A.Bdy.SP-EP}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 20, 20 100, 120 100, 140 20, 20 20))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(20 100, 60 100, 120 100, 140 20, 80 20, 20 20, 20 100))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="2FFF1FFF2">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">true</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-2: different polygons [dim(2){A.A.Int = B.A.Ext}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(0 0, 80 0, 80 80, 0 80, 0 0))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(100 200, 100 140, 180 140, 180 200, 100 200))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2FF1212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-3-1-1: the closing point of a polygon touching the closing point of another polygon [dim(0){A.A.Bdy.CP = B.A.Bdy.CP}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(140 120, 160 20, 20 20, 20 120, 140 120))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(140 120, 140 200, 240 200, 240 120, 140 120))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F01212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-3-1-2: the closing point of a polygon touching the boundary (at a non-vertex) of another polygon [dim(0){A.A.Bdy.CP = B.A.Bdy.NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(140 120, 160 20, 20 20, 20 120, 140 120))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(80 180, 140 260, 260 200, 200 60, 80 180))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F01212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-3-1-3: the closing point of a polygon touching the boundary (at a vertex) of another polygon [dim(0){A.A.Bdy.CP = B.A.Bdy.V}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(140 120, 160 20, 20 20, 20 120, 140 120))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(240 80, 140 120, 180 240, 280 200, 240 80))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F01212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-3-1-4: the boundary (at a non-vertex) of a polygon touching the closing point of another polygon [dim(0){A.A.Bdy.NV = B.A.Bdy.CP}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(140 160, 20 20, 270 20, 150 160, 230 40, 60 40, 140 160))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(140 40, 180 80, 120 100, 140 40))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F01212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-3-1-5: the boundary (at a non-vertex) of a polygon touching the boundary (at a vertex) of another polygon [dim(0){A.A.Bdy.NV = B.A.Bdy.V}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(140 160, 20 20, 270 20, 150 160, 230 40, 60 40, 140 160))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(120 100, 180 80, 130 40, 120 100))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F01212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-3-1-6: the boundary (at a vertex) of a polygon touching the boundary (at a non-vertex) of another polygon [dim(0){A.A.Bdy.V = B.A.Bdy.NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 20, 180 20, 140 140, 20 140, 20 20))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(180 100, 80 200, 180 280, 260 200, 180 100))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F01212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-3-1-7: the boundary (at a vertex) of a polygon touching the boundary (at a vertex) of another polygon [dim(0){A.A.Bdy.V = B.A.Bdy.V}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(140 120, 160 20, 20 20, 20 120, 140 120))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(140 140, 20 120, 0 220, 120 240, 140 140))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F01212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-3-2-1: two polygons touching at multiple points [dim(0){A.A.Bdy.CP = B.A.Bdy.CP}, dim(0){A.A.Bdy.V = B.A.Bdy.V}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 120, 20 20, 260 20, 260 120, 200 40, 140 120, 80 40, 20 120))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(20 120, 20 240, 260 240, 260 120, 200 200, 140 120, 80 200, 20 120))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F01212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-3-2-2: two polygons touching at multiple points [dim(0){A.A.Bdy.CP = B.A.Bdy.CP}, dim(0){A.A.Bdy.V = B.A.Bdy.NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 120, 20 20, 260 20, 260 120, 180 40, 140 120, 100 40, 20 120))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(20 120, 300 120, 140 240, 20 120))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F01212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-3-2-3: two polygons touching at multiple points [dim(0){A.A.Bdy.CP = B.A.Bdy.NV}, dim(0){A.A.Bdy.V = B.A.Bdy.NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 20, 20 300, 280 300, 280 260, 220 260, 60 100, 60 60, 280 60, 280 20,
|
|
20 20))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(100 140, 160 80, 280 180, 200 240, 220 160, 160 200, 180 120, 100 140))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F01212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-3-2-4: two polygons touching at multiple points [dim(0){A.A.Bdy.V = B.A.Bdy.NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 20, 20 300, 280 300, 280 260, 220 260, 60 100, 60 60, 280 60, 280 20,
|
|
20 20))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(260 200, 180 80, 120 160, 200 160, 180 220, 260 200))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F01212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-3-2-5: two polygons touching at multiple points [dim(0){A.A.Bdy.V = B.A.Bdy.NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 20, 280 20, 280 140, 220 60, 140 140, 80 60, 20 140, 20 20))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(0 140, 300 140, 140 240, 0 140))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F01212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-3-2-6: two polygons touching at multiple points [dim(0){A.A.Bdy.V = B.A.Bdy.V}, dim(0){A.A.Bdy.V = B.A.Bdy.NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 20, 280 20, 280 140, 220 60, 140 140, 80 60, 20 140, 20 20))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(20 240, 20 140, 320 140, 180 240, 20 240))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F01212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-3-2-7: two polygons touching at multiple points [dim(0){A.A.Bdy.V = B.A.Bdy.V}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 20, 280 20, 280 140, 220 60, 140 140, 80 60, 20 140, 20 20))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(20 240, 20 140, 80 180, 140 140, 220 180, 280 140, 280 240, 20 240))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F01212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-3-3-1: two polygons touching along a boundary [dim(1){A.A.Bdy.SP-V = B.A.Bdy.SP-NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(120 120, 180 60, 20 20, 20 120, 120 120))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(120 120, 220 20, 280 20, 240 160, 120 120))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F11212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-3-3-2: two polygons touching along a boundary [dim(1){A.A.Bdy.SP-V = B.A.Bdy.SP-V}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(140 120, 160 20, 20 20, 20 120, 140 120))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(140 120, 160 20, 260 120, 220 200, 140 120))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F11212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-3-3-3: two polygons touching along a boundary [dim(1){A.A.Bdy.SP-V = B.A.Bdy.NV-V}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 140, 120 40, 20 40, 20 140))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(190 140, 190 20, 140 20, 20 140, 190 140))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F11212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-3-3-4: two polygons touching along a boundary [dim(1){A.A.Bdy.SP-V = B.A.Bdy.NV-V}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(120 120, 180 60, 20 20, 20 120, 120 120))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(300 20, 220 20, 120 120, 260 160, 300 20))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F11212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-3-3-5: two polygons touching along a boundary [dim(1){A.A.Bdy.SP-V = B.A.Bdy.V-EP}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(140 120, 160 20, 20 20, 20 120, 140 120))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(140 120, 240 160, 280 60, 160 20, 140 120))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F11212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-3-3-6: two polygons touching along a boundary [dim(1){A.A.Bdy.SP-V = B.A.Bdy.V-V}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(120 120, 180 60, 20 20, 20 120, 120 120))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(280 60, 180 60, 120 120, 260 180, 280 60))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F11212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-3-3-7: two polygons touching along a boundary [dim(1){A.A.Bdy.NV-NV = B.A.Bdy.V-V}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(140 120, 160 20, 20 20, 20 120, 140 120))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(120 200, 120 120, 40 120, 40 200, 120 200))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F11212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-3-3-8: two polygons touching along a boundary [dim(1){A.A.Bdy.NV-EP = B.A.Bdy.V-V}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(140 120, 160 20, 20 20, 20 120, 140 120))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(160 220, 140 120, 60 120, 40 220, 160 220))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F11212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-3-3-9: two polygons touching along a boundary [dim(1){A.A.Bdy.V-EP = B.A.Bdy.V-SP}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(140 120, 160 20, 20 20, 20 120, 140 120))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(140 120, 20 120, 20 220, 140 220, 140 120))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F11212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-3-3-10: two polygons touching along a boundary [dim(1){A.A.Bdy.V-V = B.A.Bdy.NV-NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(120 120, 180 60, 20 20, 20 120, 120 120))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(320 20, 220 20, 80 160, 240 140, 320 20))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F11212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-5-1: a polygon containing another polygon [dim(2){A.A.Int = B.A.Int}, dim(1){A.A.Bdy.SP-EP = B.A.Int}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 20, 20 180, 220 180, 220 20, 20 20))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(60 40, 60 140, 180 140, 180 40, 60 40))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212FF1FF2">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-5-2-1: a polygon containing another polygon [dim(2){A.A.Int = B.A.Int}, dim(0){A.A.Bdy.CP = B.A.Bdy.CP}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 20, 20 180, 220 180, 220 20, 20 20))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(20 20, 80 140, 160 60, 20 20))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212F01FF2">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-5-2-2: a polygon containing another polygon [dim(2){A.A.Int = B.A.Int}, dim(0){A.A.Bdy.CP = B.A.Bdy.V}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 20, 20 180, 220 180, 220 20, 20 20))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(160 60, 20 20, 100 140, 160 60))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212F01FF2">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-5-2-3: a polygon containing another polygon [dim(2){A.A.Int = B.A.Int}, dim(0){A.A.Bdy.NV = B.A.Bdy.CP}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 20, 20 180, 220 180, 220 20, 20 20))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(20 100, 140 160, 160 40, 20 100))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212F01FF2">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-5-2-4: a polygon containing another polygon [dim(2){A.A.Int = B.A.Int}, dim(0){A.A.Bdy.NV = B.A.Bdy.V}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 20, 20 180, 220 180, 220 20, 20 20))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(160 40, 20 100, 160 160, 160 40))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212F01FF2">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-5-2-5: a polygon containing another polygon [dim(2){A.A.Int = B.A.Int}, dim(0){A.A.Bdy.V = B.A.Bdy.CP}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 20, 20 180, 220 180, 220 20, 20 20))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(20 180, 180 120, 80 40, 20 180))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212F01FF2">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-5-2-6: a polygon containing another polygon [dim(2){A.A.Int = B.A.Int}, dim(0){A.A.Bdy.V = B.A.Bdy.V}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 20, 20 180, 220 180, 220 20, 20 20))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(180 120, 100 40, 20 180, 180 120))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212F01FF2">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-5-3-1: a polygon containing another polygon [dim(2){A.A.Int = B.A.Int}, dim(0){A.A.Bdy.CP = B.A.Bdy.CP}, dim(0){A.A.Bdy.NV = B.A.Bdy.V}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 20, 20 180, 220 180, 220 20, 20 20))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(20 20, 140 40, 140 120, 20 160, 80 80, 20 20))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212F01FF2">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-5-3-2: a polygon containing another polygon [dim(2){A.A.Int = B.A.Int}, dim(0){A.A.Bdy.CP = B.A.Bdy.CP}, dim(0){A.A.Bdy.V = B.A.Bdy.V}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 20, 20 180, 220 180, 220 20, 20 20))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(20 20, 140 40, 140 140, 20 180, 80 100, 20 20))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212F01FF2">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-5-3-3: a polygon containing another polygon [dim(2){A.A.Int = B.A.Int}, dim(0){A.A.Bdy.NV = B.A.Bdy.V}, dim(0){A.A.Bdy.NV = B.A.Bdy.V}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 20, 20 180, 220 180, 220 20, 20 20))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(40 180, 60 100, 180 100, 200 180, 120 120, 40 180))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212F01FF2">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-5-3-4: a polygon containing another polygon [dim(2){A.A.Int = B.A.Int}, dim(0){A.A.Bdy.V = B.A.Bdy.CP}, dim(0){A.A.Bdy.V = B.A.Bdy.V}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 20, 20 180, 220 180, 220 20, 20 20))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(20 180, 60 80, 180 80, 220 180, 120 120, 20 180))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212F01FF2">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-5-3-5: a polygon containing another polygon [dim(2){A.A.Int = B.A.Int}, dim(0){A.A.Bdy.V = B.A.Bdy.V}, dim(0){A.A.Bdy.NV = B.A.Bdy.V}, dim(0){A.A.Bdy.NV = B.A.Bdy.V}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 20, 20 180, 220 180, 220 20, 20 20))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(40 60, 20 180, 100 100, 140 180, 160 120, 220 100, 140 40, 40 60))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212F01FF2">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-5-3-6: a polygon containing another polygon [dim(2){A.A.Int = B.A.Int}, dim(0){A.A.Bdy.V = B.A.Bdy.V}, dim(0){A.A.Bdy.V = B.A.Bdy.V}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 20, 20 180, 220 180, 220 20, 20 20))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(60 100, 180 100, 220 180, 120 140, 20 180, 60 100))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212F01FF2">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-5-4-1: a polygon containing another polygon [dim(2){A.A.Int = B.A.Int}, dim(1){A.A.Bdy.SP-NV = B.A.Bdy.SP-V}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 20, 20 180, 220 180, 220 20, 20 20))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(20 20, 20 140, 120 120, 120 40, 20 20))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212F11FF2">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-5-4-2: a polygon containing another polygon [dim(2){A.A.Int = B.A.Int}, dim(1){A.A.Bdy.SP-V = B.A.Bdy.SP-V)}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 20, 20 180, 220 180, 220 20, 20 20))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(20 20, 20 180, 140 140, 140 60, 20 20))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212F11FF2">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-5-4-3: a polygon containing another polygon [dim(2){A.A.Int = B.A.Int}, dim(1){A.A.Bdy.SP-NV = B.A.Bdy.V-EP}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 20, 20 180, 220 180, 220 20, 20 20))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(20 20, 120 40, 120 120, 20 140, 20 20))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212F11FF2">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-5-4-4: a polygon containing another polygon [dim(2){A.A.Int = B.A.Int}, dim(1){A.A.Bdy.SP-NV = B.A.Bdy.V-V}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 20, 20 180, 220 180, 220 20, 20 20))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(120 40, 20 20, 20 140, 120 120, 120 40))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212F11FF2">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-5-4-5: a polygon containing another polygon [dim(2){A.A.Int = B.A.Int}, dim(1){A.A.Bdy.SP-V = B.A.Bdy.V-EP}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 20, 20 180, 220 180, 220 20, 20 20))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(20 20, 140 60, 140 140, 20 180, 20 20))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212F11FF2">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-5-4-6: a polygon containing another polygon [dim(2){A.A.Int = B.A.Int}, dim(1){A.A.Bdy.SP-V = B.A.Bdy.V-V}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 20, 20 180, 220 180, 220 20, 20 20))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(140 60, 20 20, 20 180, 140 140, 140 60))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212F11FF2">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-5-4-7: a polygon containing another polygon [dim(2){A.A.Int = B.A.Int}, dim(1){A.A.Bdy.NV-EP = B.A.Bdy.V-EP}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 20, 20 180, 220 180, 220 20, 20 20))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(20 20, 60 120, 140 120, 180 20, 20 20))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212F11FF2">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-5-4-8: a polygon containing another polygon [dim(2){A.A.Int = B.A.Int}, dim(1){A.A.Bdy.NV-NV = B.A.Bdy.V-EP}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 20, 20 180, 220 180, 220 20, 20 20))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(20 40, 120 40, 120 120, 20 140, 20 40))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212F11FF2">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-5-5-1: a polygon containing another polygon [dim(2){A.A.Int = B.A.Int}, dim(1){A.A.Bdy.SP-V = B.A.Bdy.SP-V}, dim(1){A.A.Bdy.(NV, V) = B.A.Bdy.(V, V)}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 20, 20 180, 220 180, 220 20, 20 20))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(20 20, 20 180, 60 120, 100 180, 140 120, 220 180, 200 120, 140 60, 20 20))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212F11FF2">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-6-1: a polygon overlapping another polygon [dim(2){A.A.Int = B.A.Int}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(150 150, 330 150, 250 70, 70 70, 150 150))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(150 150, 270 150, 140 20, 20 20, 150 150))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212111212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-6-2: a polygon overlapping another polygon [dim(2){A.A.Int = B.A.Int}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(150 150, 270 150, 330 150, 250 70, 190 70, 70 70, 150 150))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(150 150, 270 150, 190 70, 140 20, 20 20, 70 70, 150 150))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212111212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-6-3: spiky polygons overlapping; boundary <-> boundary intersecting at 0 dimension [dim(2){A.A.Int = B.A.Int}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(20 20, 60 50, 20 40, 60 70, 20 60, 60 90, 20 90, 70 110, 20 130,
|
|
80 130, 20 150, 80 160, 20 170, 80 180, 20 200, 80 200, 30 240, 80 220, 50 260,
|
|
100 220, 100 260, 120 220, 130 260, 140 220, 150 280, 150 190, 160 280, 170 190, 180 280,
|
|
190 190, 200 280, 210 190, 220 280, 230 190, 240 260, 250 230, 260 260, 260 220, 290 270,
|
|
290 220, 330 260, 300 210, 340 240, 290 180, 340 210, 290 170, 350 170, 240 150, 350 150,
|
|
240 140, 350 130, 240 120, 350 120, 240 110, 350 110, 240 100, 350 100, 240 90, 350 90,
|
|
240 80, 350 80, 300 70, 340 60, 290 60, 340 40, 300 50, 340 20, 270 60, 310 20,
|
|
250 60, 270 20, 230 60, 240 20, 210 60, 210 20, 190 70, 190 20, 180 90, 170 20,
|
|
160 90, 150 20, 140 90, 130 20, 120 90, 110 20, 100 90, 100 20, 90 60, 80 20,
|
|
70 40, 20 20))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(190 140, 140 130, 200 160, 130 150, 210 170, 130 170, 210 180, 120 190, 220 200,
|
|
120 200, 250 210, 120 210, 250 220, 120 220, 250 230, 120 240, 230 240, 120 250, 240 260,
|
|
120 260, 240 270, 120 270, 270 290, 120 290, 230 300, 150 310, 250 310, 180 320, 250 320,
|
|
200 360, 260 330, 240 360, 280 320, 290 370, 290 320, 320 360, 310 320, 360 360, 310 310,
|
|
380 340, 310 290, 390 330, 310 280, 410 310, 310 270, 420 280, 310 260, 430 250, 300 250,
|
|
440 240, 300 240, 450 230, 280 220, 440 220, 280 210, 440 210, 300 200, 430 190, 300 190,
|
|
440 180, 330 180, 430 150, 320 180, 420 130, 300 180, 410 120, 280 180, 400 110, 280 170,
|
|
390 90, 280 160, 400 70, 270 160, 450 30, 260 160, 420 30, 250 160, 390 30, 240 160,
|
|
370 30, 230 160, 360 30, 230 150, 330 50, 240 130, 330 30, 230 130, 310 30, 220 130,
|
|
280 30, 230 100, 270 40, 220 110, 250 30, 210 130, 240 30, 210 100, 220 40, 200 90,
|
|
200 20, 190 100, 180 30, 20 20, 180 40, 20 30, 180 50, 20 50, 180 60, 30 60,
|
|
180 70, 20 70, 170 80, 80 80, 170 90, 20 80, 180 100, 40 100, 200 110, 60 110,
|
|
200 120, 120 120, 190 140))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212101212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-6-4: spiky polygons overlapping; boundary <-> boundary intersecting at 1 dimension at a few locations [dim(2){A.A.Int = B.A.Int}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(70 150, 20 160, 110 160, 20 180, 100 200, 20 200, 190 210, 20 210, 160 220,
|
|
20 220, 150 230, 60 240, 180 250, 20 260, 170 260, 60 270, 160 270, 100 310, 170 280,
|
|
200 260, 180 230, 210 260, 130 330, 230 250, 210 290, 240 250, 230 210, 260 300, 250 230,
|
|
270 300, 270 240, 300 340, 280 250, 320 330, 290 250, 340 350, 290 240, 350 360, 270 190,
|
|
350 340, 290 200, 350 330, 300 190, 360 320, 310 190, 360 300, 320 200, 360 280, 330 200,
|
|
360 260, 340 200, 370 260, 340 180, 390 290, 340 170, 400 260, 350 170, 400 250, 350 160,
|
|
410 240, 350 150, 400 170, 350 140, 310 170, 340 140, 270 180, 330 140, 260 170, 310 140,
|
|
240 170, 290 140, 200 190, 270 140, 180 190, 260 140, 170 190, 260 130, 170 180, 250 130,
|
|
170 170, 240 120, 170 160, 210 120, 170 150, 210 110, 340 130, 230 110, 420 140, 220 100,
|
|
410 130, 220 90, 400 120, 220 80, 390 110, 220 70, 420 110, 240 70, 420 100, 260 70,
|
|
420 90, 280 70, 430 80, 230 60, 430 60, 270 50, 450 40, 210 50, 370 40, 260 40,
|
|
460 30, 160 40, 210 60, 200 110, 190 60, 190 120, 170 50, 180 130, 150 30, 170 130,
|
|
140 20, 160 120, 130 20, 160 150, 120 20, 160 170, 110 20, 160 190, 100 20, 150 190,
|
|
90 20, 140 180, 80 20, 120 140, 70 20, 120 150, 60 20, 110 150, 50 20, 100 140,
|
|
50 30, 90 130, 40 30, 80 120, 30 30, 80 130, 30 40, 80 140, 20 40, 70 140,
|
|
40 90, 60 130, 20 90, 60 140, 20 130, 70 150))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(190 140, 140 130, 200 160, 130 150, 210 170, 130 170, 210 180, 120 190, 220 200,
|
|
120 200, 250 210, 120 210, 250 220, 120 220, 250 230, 120 240, 230 240, 120 250, 240 260,
|
|
120 260, 240 270, 120 270, 270 290, 120 290, 230 300, 150 310, 250 310, 180 320, 250 320,
|
|
200 360, 260 330, 240 360, 280 320, 290 370, 290 320, 320 360, 310 320, 360 360, 310 310,
|
|
380 340, 310 290, 390 330, 310 280, 410 310, 310 270, 420 280, 310 260, 430 250, 300 250,
|
|
440 240, 300 240, 450 230, 280 220, 440 220, 280 210, 440 210, 300 200, 430 190, 300 190,
|
|
440 180, 330 180, 430 150, 320 180, 420 130, 300 180, 410 120, 280 180, 400 110, 280 170,
|
|
390 90, 280 160, 400 70, 270 160, 450 30, 260 160, 420 30, 250 160, 390 30, 240 160,
|
|
370 30, 230 160, 360 30, 230 150, 330 50, 240 130, 330 30, 230 130, 310 30, 220 130,
|
|
280 30, 230 100, 270 40, 220 110, 250 30, 210 130, 240 30, 210 100, 220 40, 200 90,
|
|
200 20, 190 100, 180 30, 20 20, 180 40, 20 30, 180 50, 20 50, 180 60, 30 60,
|
|
180 70, 20 70, 170 80, 80 80, 170 90, 20 80, 180 100, 40 100, 200 110, 60 110,
|
|
200 120, 120 120, 190 140))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212111212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-6-5: a polygon overlapping another polygon [dim(2){A.A.Int = B.A.Int}, dim(0){A.A.Bdy.CP = B.A.Bdy.CP}, dim(0){A.A.Bdy.V = B.A.Bdy.V}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(60 160, 220 160, 220 20, 60 20, 60 160))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(60 160, 20 200, 260 200, 220 160, 140 80, 60 160))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212101212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-6-6: a polygon overlapping another polygon [dim(2){A.A.Int = B.A.Int}, dim(0){A.A.Bdy.CP = B.A.Bdy.CP}, dim(0){A.A.Bdy.V = B.A.Bdy.NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(60 160, 220 160, 220 20, 60 20, 60 160))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(60 160, 20 200, 260 200, 140 80, 60 160))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212101212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-6-7: a polygon overlapping another polygon [dim(2){A.A.Int = B.A.Int}, dim(0){A.A.Bdy.CP = B.A.Bdy.NV}, dim(0){A.A.Bdy.V = B.A.Bdy.NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(60 160, 220 160, 220 20, 60 20, 60 160))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(20 200, 140 80, 260 200, 20 200))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212101212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-6-8: a polygon overlapping another polygon [dim(2){A.A.Int = B.A.Int}, dim(0){A.A.Bdy.CP = B.A.Bdy.V}, dim(0){A.A.Bdy.V = B.A.Bdy.V}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(60 160, 220 160, 220 20, 60 20, 60 160))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(20 200, 60 160, 140 80, 220 160, 260 200, 20 200))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212101212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-6-9: a polygon overlapping another polygon [dim(2){A.A.Int = B.A.Int}, dim(0){A.A.Bdy.CP = B.A.Bdy.V}, dim(0){A.A.Bdy.V = B.A.Bdy.NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(60 160, 220 160, 220 20, 60 20, 60 160))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(20 200, 60 160, 140 80, 260 200, 20 200))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212101212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-6-10: a polygon overlapping a skinny polygon [dim(2){A.A.Int = B.A.Int}, dim(0){A.A.Bdy.NV = B.A.Bdy.NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(0 0, 0 200, 200 200, 200 0, 0 0))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(100 100, 1000000 110, 10000000 100, 100 100))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212101212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-6-11: a polygon overlapping a skinny polygon [dim(2){A.A.Int = B.A.Int}, dim(0){A.A.Bdy.NV = B.A.Bdy.CP}, dim(0){A.A.Bdy.NV = B.A.Bdy.NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(100 0, 100 200, 200 200, 200 0, 100 0))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(100 100, 1000000 110, 10000000 100, 100 100))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212101212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-6-12: a polygon overlapping a skinny polygon [dim(2){A.A.Int = B.A.Int}, dim(0){A.A.Bdy.NV = B.A.Bdy.NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(120 0, 120 200, 200 200, 200 0, 120 0))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(100 100, 1000000 110, 10000000 100, 100 100))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212101212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-6-13: a polygon overlapping a skinny polygon [dim(2){A.A.Int = B.A.Int}, dim(0){A.A.Bdy.NV = B.A.Bdy.NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(0 0, 0 200, 110 200, 110 0, 0 0))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(100 100, 1000000 110, 10000000 100, 100 100))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212101212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-6-14: a polygon overlapping a skinny polygon [dim(2){A.A.Int = B.A.Int}, dim(1){A.A.Bdy.V-EP = B.A.Bdy.NV-EP}, dim(0){A.A.Bdy.CP = B.A.Bdy.CP}, dim(0){A.A.Bdy.NV = B.A.Bdy.NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(100 100, 100 200, 200 200, 200 100, 100 100))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(100 100, 2100 110, 2100 100, 100 100))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212111212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-6-15: a polygon overlapping a skinny polygon [dim(2){A.A.Int = B.A.Int}, dim(1){A.A.Bdy.V-EP = B.A.Bdy.NV-EP}, dim(0){A.A.Bdy.CP = B.A.Bdy.CP}, dim(0){A.A.Bdy.NV = B.A.Bdy.NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(100 100, 100 200, 200 200, 200 100, 100 100))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(100 100, 2101 110, 2101 100, 100 100))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212111212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-6-16: two skinny polygons overlapping [dim(2){A.A.Int = B.A.Int}, dim(1){A.A.Bdy.V-EP = B.A.Bdy.NV-EP}, dim(0){A.A.Bdy.CP = B.A.Bdy.CP}, dim(0){A.A.Bdy.NV = B.A.Bdy.NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(100 100, 200 200, 200 100, 100 100))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(100 100, 2101 110, 2101 100, 100 100))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212111212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-6-17: a polygon overlapping a skinny polygon [dim(2){A.A.Int = B.A.Int}, dim(1){A.A.Bdy.V-EP = B.A.Bdy.NV-EP}, dim(0){A.A.Bdy.CP = B.A.Bdy.CP}, dim(0){A.A.Bdy.NV = B.A.Bdy.NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(100 100, 100 200, 200 200, 200 100, 100 100))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(100 100, 1000000 110, 1000000 100, 100 100))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212111212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-6-19: a polygon overlapping a skinny polygon [dim(2){A.A.Int = B.A.Int}, dim(1){A.A.Bdy.V-EP = B.A.Bdy.NV-NV}, dim(0){A.A.Bdy.NV = B.A.Bdy.NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(120 100, 120 200, 200 200, 200 100, 120 100))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(100 100, 500 110, 500 100, 100 100))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212111212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-6-20: a polygon overlapping a skinny polygon [dim(2){A.A.Int = B.A.Int}, dim(1){A.A.Bdy.V-EP = B.A.Bdy.NV-NV}, dim(0){A.A.Bdy.NV = B.A.Bdy.NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(120 100, 120 200, 200 200, 200 100, 120 100))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(100 100, 501 110, 501 100, 100 100))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212111212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-6-21: a polygon overlapping a skinny polygon [dim(2){A.A.Int = B.A.Int}, dim(1){A.A.Bdy.V-EP = B.A.Bdy.NV-NV}, dim(0){A.A.Bdy.NV = B.A.Bdy.NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(120 100, 130 200, 200 200, 200 100, 120 100))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(100 100, 501 110, 501 100, 100 100))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212111212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-6-22: a polygon overlapping a skinny polygon [dim(2){A.A.Int = B.A.Int}, dim(1){A.A.Bdy.V-EP = B.A.Bdy.NV-NV}, dim(0){A.A.Bdy.NV = B.A.Bdy.NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(120 100, 17 200, 200 200, 200 100, 120 100))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(100 100, 501 110, 501 100, 100 100))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212111212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-6-23: a polygon overlapping a skinny polygon [dim(2){A.A.Int = B.A.Int}, dim(1){A.A.Bdy.V-EP = B.A.Bdy.NV-NV}, dim(0){A.A.Bdy.NV = B.A.Bdy.NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(120 100, 120 200, 200 200, 200 100, 120 100))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(100 100, 1000000 110, 1000000 100, 100 100))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212111212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-6-25: two skinny polygons overlapping [dim(2){A.A.Int = B.A.Int}, dim(0){A.A.Bdy.NV = B.A.Bdy.NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(101 99, 101 1000000, 102 1000000, 101 99))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(100 100, 1000000 110, 1000000 100, 100 100))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212101212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-6-26: two skinny polygons overlapping [dim(2){A.A.Int = B.A.Int}, dim(1){A.A.Bdy.V-EP = B.A.Bdy.NV-EP}, dim(0){A.A.Bdy.CP = B.A.Bdy.CP}, dim(0){A.A.Bdy.NV = B.A.Bdy.NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(100 100, 200 101, 200 100, 100 100))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(100 100, 2101 110, 2101 100, 100 100))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212111212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/A-6-26: two polygons overlapping [dim(2){A.A.Int = B.A.Int}, dim(0){A.A.Bdy.NV = B.A.Bdy.NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(16 319, 150 39, 25 302, 160 20, 265 20, 127 317, 16 319))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(10 307, 22 307, 153 34, 22 34, 10 307))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212101212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/Ah-3-1: the closing point of a polygon touching the closing points of another polygon and its hole [dim(0){A.A.Bdy.CP = B.A.oBdy.CP}, dim(0){A.A.Bdy.CP = B.A.iBdy.CP}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(160 200, 210 70, 120 70, 160 200))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(160 200, 310 20, 20 20, 160 200),
|
|
(160 200, 260 40, 70 40, 160 200))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F01212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/Ah-3-2: the boundary of a polygon touching the inner boundary of another polygon at two spots [dim(2){A.A.Int = B.A.Ext.h}, dim(0){A.A.oBdy.SP = B.A.iBdy.SP}, dim(0){A.A.oBdy.V = B.A.iBdy.V}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(170 120, 240 100, 260 50, 190 70, 170 120))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(150 150, 410 150, 280 20, 20 20, 150 150),
|
|
(170 120, 330 120, 260 50, 100 50, 170 120))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F01212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/Ah-3-3: the boundary of a polygon touching the inner boundary of another polygon at two spots [dim(2){A.A.Int = B.A.Ext.h}, dim(0){A.A.oBdy.SP = B.A.iBdy.SP}, dim(0){A.A.oBdy.V = B.A.iBdy.V}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(270 90, 200 50, 150 80, 210 120, 270 90))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(150 150, 410 150, 280 20, 20 20, 150 150),
|
|
(170 120, 330 120, 260 50, 100 50, 170 120))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F01212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/Ah-3-4: the boundary of a polygon touching the inner boundary of another polygon at one spot [dim(2){A.A.Int = B.A.Ext.h}, dim(0){A.A.oBdy.SP = B.A.iBdy.SP}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(170 120, 260 100, 240 60, 150 80, 170 120))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(150 150, 410 150, 280 20, 20 20, 150 150),
|
|
(170 120, 330 120, 260 50, 100 50, 170 120))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F01212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/Ah-3-5: the boundary of a polygon touching the inner boundary of another polygon at one spot [dim(2){A.A.Int = B.A.Ext.h}, dim(0){A.A.oBdy.SP = B.A.iBdy.NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(220 120, 270 80, 200 60, 160 100, 220 120))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(150 150, 410 150, 280 20, 20 20, 150 150),
|
|
(170 120, 330 120, 260 50, 100 50, 170 120))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F01212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/Ah-3-6: the boundary of a polygon touching the inner boundary of another polygon at one spot [dim(2){A.A.Int = B.A.Ext.h}, dim(0){A.A.oBdy.SP = B.A.iBdy.V}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(260 50, 180 70, 180 110, 260 90, 260 50))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(150 150, 410 150, 280 20, 20 20, 150 150),
|
|
(170 120, 330 120, 260 50, 100 50, 170 120))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F01212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/Ah-3-7: the boundary of a polygon touching the inner boundary of another polygon at two spots [dim(2){A.A.Int = B.A.Ext.h}, dim(0){A.A.oBdy.V = B.A.iBdy.NV}, dim(0){A.A.oBdy.V = B.A.iBdy.NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(230 110, 290 80, 190 60, 140 90, 230 110))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(150 150, 410 150, 280 20, 20 20, 150 150),
|
|
(170 120, 330 120, 260 50, 100 50, 170 120))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F01212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/Ah-3-8: the boundary of a polygon touching the inner boundary of another polygon [dim(2){A.A.Int = B.A.Ext.h}, dim(1){A.A.oBdy.SP-EP = B.A.iBdy.SP-EP}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(170 120, 330 120, 260 50, 100 50, 170 120))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(150 150, 410 150, 280 20, 20 20, 150 150),
|
|
(170 120, 330 120, 260 50, 100 50, 170 120))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F1F212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/Ah-3-9: part of the boundary of a polygon touching part of the inner boundary of another polygon [dim(2){A.A.Int = B.A.Ext.h}, dim(1){A.A.oBdy.SP-V = B.A.iBdy.SP-NV}, dim(1){A.A.oBdy.V-EP = B.A.iBdy.NV-EP}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(170 120, 330 120, 280 70, 120 70, 170 120))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(150 150, 410 150, 280 20, 20 20, 150 150),
|
|
(170 120, 330 120, 260 50, 100 50, 170 120))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F11212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/Ah-3-10: part of the boundary of a polygon touching part of the inner boundary of another polygon [dim(2){A.A.Int = B.A.Ext.h}, dim(1){A.A.oBdy.SP-V = B.A.iBdy.SP-NV}, dim(1){A.A.oBdy.V-EP = B.A.iBdy.NV-EP}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(170 120, 300 120, 250 70, 120 70, 170 120))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(150 150, 410 150, 280 20, 20 20, 150 150),
|
|
(170 120, 330 120, 260 50, 100 50, 170 120))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F11212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/Ah-3-11: part of the boundary of a polygon touching part of the inner boundary of another polygon [dim(2){A.A.Int = B.A.Ext.h}, dim(1){A.A.oBdy.V-V-V = B.A.iBdy.NV-V-NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(190 100, 310 100, 260 50, 140 50, 190 100))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(150 150, 410 150, 280 20, 20 20, 150 150),
|
|
(170 120, 330 120, 260 50, 100 50, 170 120))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F11212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/Ah-5-1: an entire polygon within another polygon which has a hole [dim(2){A.A.Ext = B.A.Int}, dim(2){A.A.Int = B.A.Int}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(280 130, 360 130, 270 40, 190 40, 280 130))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(150 150, 410 150, 280 20, 20 20, 150 150),
|
|
(170 120, 250 120, 180 50, 100 50, 170 120))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="2FF1FF212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">true</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/Ah-5-2: an entire polygon within another polygon which has a hole [dim(2){A.A.Int = B.A.Int}, dim(2){A.A.Ext = B.A.Int}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(220 80, 180 40, 80 40, 170 130, 270 130, 230 90, 300 90, 250 30, 280 30,
|
|
390 140, 150 140, 40 30, 230 30, 280 80, 220 80))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(150 150, 410 150, 280 20, 20 20, 150 150),
|
|
(170 120, 250 120, 180 50, 100 50, 170 120))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="2FF1FF212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">true</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/Ah-5-3: polygon A within polygon B, the boundary of A touching the inner boundary of B [dim(2){A.A.Int = B.A.Int}, dim(2){A.A.Ext = B.A.Int}, dim(1){A.A.Bdy.NV-NV = B.A.iBdy.V-V}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(260 130, 360 130, 280 40, 170 40, 260 130))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(150 150, 410 150, 280 20, 20 20, 150 150),
|
|
(170 120, 250 120, 180 50, 100 50, 170 120))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="2FF11F212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">true</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/Ah-5-4: polygon A within polygon B, the boundary of A touching the inner boundary of B [dim(2){A.A.Int = B.A.Int}, dim(2){A.A.Ext = B.A.Int}, dim(1){A.A.Bdy.V-V = B.A.iBdy.NV-NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(240 110, 340 110, 290 60, 190 60, 240 110))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(150 150, 410 150, 280 20, 20 20, 150 150),
|
|
(170 120, 250 120, 180 50, 100 50, 170 120))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="2FF11F212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">true</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/Ah-5-5: polygon A within polygon B, the boundary of A touching the inner boundary of B [dim(2){A.A.Int = B.A.Int}, dim(2){A.A.Ext = B.A.Int}, dim(1){A.A.Bdy.V-V = B.A.iBdy.V-V}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(250 120, 350 120, 280 50, 180 50, 250 120))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(150 150, 410 150, 280 20, 20 20, 150 150),
|
|
(170 120, 250 120, 180 50, 100 50, 170 120))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="2FF11F212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">true</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>Ah/Ah-1-1: same polygons (with a hole) [dim(2){A.A.Int = B.A.Int}, dim(1){A.A.oBdy.SP-EP = B.A.oBdy.SP-EP}, dim(1){A.A.iBdy.SP-EP = B.A.iBdy.SP-EP}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(230 210, 230 20, 20 20, 20 210, 230 210),
|
|
(120 180, 50 50, 200 50, 120 180))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(230 210, 230 20, 20 20, 20 210, 230 210),
|
|
(120 180, 50 50, 200 50, 120 180))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="2FFF1FFF2">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">true</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A2h/A2h-1-1: same polygons (with two holes) [dim(2){A.A.Int = B.A.Int}, dim(1){A.A.oBdy.SP-EP = B.A.oBdy.SP-EP}, dim(1){A.A.iBdy.SP-EP = B.A.iBdy.SP-EP}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(230 210, 230 20, 20 20, 20 210, 230 210),
|
|
(140 40, 40 40, 40 170, 140 40),
|
|
(110 190, 210 190, 210 50, 110 190))
|
|
</a>
|
|
<b>
|
|
POLYGON(
|
|
(230 210, 230 20, 20 20, 20 210, 230 210),
|
|
(140 40, 40 40, 40 170, 140 40),
|
|
(110 190, 210 190, 210 50, 110 190))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="2FFF1FFF2">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">true</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/mA-3-1: a polygon touching multipolygon at two points [dim(2){A.A.Int = B.2A.Ext}, dim(0){A.A.oBdy.CP = B.2A2.oBdy.NV}, dim(0){A.A.oBdy.V = B.2A1.oBdy.NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(280 190, 330 150, 200 110, 150 150, 280 190))
|
|
</a>
|
|
<b>
|
|
MULTIPOLYGON(
|
|
(
|
|
(140 110, 260 110, 170 20, 50 20, 140 110)),
|
|
(
|
|
(300 270, 420 270, 340 190, 220 190, 300 270)))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F01212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/mA-3-2: a polygon touching multipolygon at two points [dim(2){A.A.Int = B.2A.Ext}, dim(0){A.A.oBdy.V = B.2A1.oBdy.CP}, dim(0){A.A.oBdy.V = B.2A2.oBdy.V}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(80 190, 220 190, 140 110, 0 110, 80 190))
|
|
</a>
|
|
<b>
|
|
MULTIPOLYGON(
|
|
(
|
|
(140 110, 260 110, 170 20, 50 20, 140 110)),
|
|
(
|
|
(300 270, 420 270, 340 190, 220 190, 300 270)))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F01212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/mA-3-3: a polygon touching multipolygon at two points [dim(2){A.A.Int = B.2A.Ext}, dim(0){A.A.oBdy.V = B.2A2.oBdy.NV}, dim(0){A.A.oBdy.V = B.2A1.oBdy.NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(330 150, 200 110, 150 150, 280 190, 330 150))
|
|
</a>
|
|
<b>
|
|
MULTIPOLYGON(
|
|
(
|
|
(140 110, 260 110, 170 20, 50 20, 140 110)),
|
|
(
|
|
(300 270, 420 270, 340 190, 220 190, 300 270)))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F01212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/mA-3-4: a polygon touching multipolygon at one spoint [dim(2){A.A.Int = B.2A.Ext}, dim(0){A.A.oBdy.V = B.2A2.oBdy.NV}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(290 190, 340 150, 220 120, 170 170, 290 190))
|
|
</a>
|
|
<b>
|
|
MULTIPOLYGON(
|
|
(
|
|
(140 110, 260 110, 170 20, 50 20, 140 110)),
|
|
(
|
|
(300 270, 420 270, 340 190, 220 190, 300 270)))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F01212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/mA-3-5: a polygon touching multipolygon along boundaries [dim(2){A.A.Int = B.2A.Ext}, dim(1){A.A.oBdy.SP-V = B.2A2.oBdy.V-V}, dim(1){A.A.oBdy.V-V = B.2A1.oBdy.V-SP}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(220 190, 340 190, 260 110, 140 110, 220 190))
|
|
</a>
|
|
<b>
|
|
MULTIPOLYGON(
|
|
(
|
|
(140 110, 260 110, 170 20, 50 20, 140 110)),
|
|
(
|
|
(300 270, 420 270, 340 190, 220 190, 300 270)))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F11212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/mA-3-6: a polygon touching multipolygon along boundaries and at a point [dim(2){A.A.Int = B.2A.Ext}, dim(1){A.A.oBdy.V-NV = B.2A1.oBdy.NV-SP}, dim(0){A.A.oBdy.V = B.2A2.oBdy.V}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(140 190, 220 190, 100 70, 20 70, 140 190))
|
|
</a>
|
|
<b>
|
|
MULTIPOLYGON(
|
|
(
|
|
(140 110, 260 110, 170 20, 50 20, 140 110)),
|
|
(
|
|
(300 270, 420 270, 340 190, 220 190, 300 270)))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F11212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>A/mA-6-1: a polygon overlapping multipolygon [dim(2){A.A.Int = B.4A.Int}, dim(0){A.A.Bdy.NV = B.A.Bdy.V}, dim(0){A.A.Bdy.NV = B.A.Bdy.CP}, dim(0){A.A.Bdy.NV = B.A.Bdy.V}, dim(0){A.A.Bdy.NV = B.A.Bdy.CP}]</desc>
|
|
<a>
|
|
POLYGON(
|
|
(140 220, 60 140, 140 60, 220 140, 140 220))
|
|
</a>
|
|
<b>
|
|
MULTIPOLYGON(
|
|
(
|
|
(100 20, 180 20, 180 100, 100 100, 100 20)),
|
|
(
|
|
(20 100, 100 100, 100 180, 20 180, 20 100)),
|
|
(
|
|
(100 180, 180 180, 180 260, 100 260, 100 180)),
|
|
(
|
|
(180 100, 260 100, 260 180, 180 180, 180 100)))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="21210F212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>mA/mA-3-1: MultiPolygon touching MultiPolygon [dim(0){A.mA.Bdy.TP = B.mA.Bdy.TP}]</desc>
|
|
<a>
|
|
MULTIPOLYGON(
|
|
(
|
|
(110 110, 70 200, 150 200, 110 110)),
|
|
(
|
|
(110 110, 150 20, 70 20, 110 110)))
|
|
</a>
|
|
<b>
|
|
MULTIPOLYGON(
|
|
(
|
|
(110 110, 160 160, 210 110, 160 60, 110 110)),
|
|
(
|
|
(110 110, 60 60, 10 110, 60 160, 110 110)))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F01212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>mAh/mAh-3-1: MultiPolygon touching MultiPolygon [dim(0){A.mA.Bdy.TP = B.mA.Bdy.TP}]</desc>
|
|
<a>
|
|
MULTIPOLYGON(
|
|
(
|
|
(110 110, 70 200, 150 200, 110 110),
|
|
(110 110, 100 180, 120 180, 110 110)),
|
|
(
|
|
(110 110, 150 20, 70 20, 110 110),
|
|
(110 110, 120 40, 100 40, 110 110)))
|
|
</a>
|
|
<b>
|
|
MULTIPOLYGON(
|
|
(
|
|
(110 110, 160 160, 210 110, 160 60, 110 110),
|
|
(110 110, 160 130, 160 90, 110 110)),
|
|
(
|
|
(110 110, 60 60, 10 110, 60 160, 110 110),
|
|
(110 110, 60 90, 60 130, 110 110)))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F01212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>mAh/mAh-3-2: MultiPolygon touching MultiPolygon [dim(1){A.mA.Bdy.NV-EP = B.mA.Bdy.V-SP}, dim(1){A.mA.Bdy.SP-NV = B.mA.Bdy.EP-V}]</desc>
|
|
<a>
|
|
MULTIPOLYGON(
|
|
(
|
|
(110 110, 70 200, 200 200, 110 110),
|
|
(110 110, 100 180, 120 180, 110 110)),
|
|
(
|
|
(110 110, 200 20, 70 20, 110 110),
|
|
(110 110, 120 40, 100 40, 110 110)))
|
|
</a>
|
|
<b>
|
|
MULTIPOLYGON(
|
|
(
|
|
(110 110, 160 160, 210 110, 160 60, 110 110),
|
|
(110 110, 160 130, 160 90, 110 110)),
|
|
(
|
|
(110 110, 60 60, 10 110, 60 160, 110 110),
|
|
(110 110, 60 90, 60 130, 110 110)))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F11212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>mAh/mAh-3-3: MultiPolygon touching MultiPolygon [dim(1){A.mA.Bdy.SP-NV = B.mA.Bdy.EP-V}, dim(1){A.mA.Bdy.NV-EP = B.mA.Bdy.V-SP}, dim(1){A.mA.Bdy.NV-EP = B.mA.Bdy.V-SP}, dim(1){A.mA.Bdy.SP-NV = B.mA.Bdy.EP-V}]</desc>
|
|
<a>
|
|
MULTIPOLYGON(
|
|
(
|
|
(110 110, 20 200, 200 200, 110 110),
|
|
(110 110, 100 180, 120 180, 110 110)),
|
|
(
|
|
(110 110, 200 20, 20 20, 110 110),
|
|
(110 110, 120 40, 100 40, 110 110)))
|
|
</a>
|
|
<b>
|
|
MULTIPOLYGON(
|
|
(
|
|
(110 110, 160 160, 210 110, 160 60, 110 110),
|
|
(110 110, 160 130, 160 90, 110 110)),
|
|
(
|
|
(110 110, 60 60, 10 110, 60 160, 110 110),
|
|
(110 110, 60 90, 60 130, 110 110)))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F11212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>mAh/mAh-6-1: MultiPolygon touching MultiPolygon [dim(2){A.mA.Int = B.mA.Int}]</desc>
|
|
<a>
|
|
MULTIPOLYGON(
|
|
(
|
|
(110 110, 70 200, 200 200, 110 110),
|
|
(110 110, 100 180, 120 180, 110 110)),
|
|
(
|
|
(110 110, 200 20, 70 20, 110 110),
|
|
(110 110, 120 40, 100 40, 110 110)))
|
|
</a>
|
|
<b>
|
|
MULTIPOLYGON(
|
|
(
|
|
(110 110, 160 160, 210 110, 160 60, 110 110),
|
|
(110 110, 160 130, 160 90, 110 110)),
|
|
(
|
|
(110 110, 60 60, 10 110, 60 160, 110 110),
|
|
(110 110, 60 90, 60 130, 110 110)))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="FF2F11212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
<case>
|
|
<desc>mAh/mAh-6-2: MultiPolygon touching MultiPolygon [dim(2){A.mA.Int = B.mA.Int}]</desc>
|
|
<a>
|
|
MULTIPOLYGON(
|
|
(
|
|
(110 110, 70 200, 200 200, 110 110),
|
|
(110 110, 100 180, 120 180, 110 110)),
|
|
(
|
|
(110 110, 200 20, 70 20, 110 110),
|
|
(110 110, 120 40, 100 40, 110 110)))
|
|
</a>
|
|
<b>
|
|
MULTIPOLYGON(
|
|
(
|
|
(110 110, 70 200, 210 110, 70 20, 110 110),
|
|
(110 110, 110 140, 150 110, 110 80, 110 110)),
|
|
(
|
|
(110 110, 60 60, 10 110, 60 160, 110 110),
|
|
(110 110, 60 90, 60 130, 110 110)))
|
|
</b>
|
|
<test>
|
|
<op name="relate" arg1="A" arg2="B" arg3="212111212">true</op>
|
|
</test>
|
|
<test><op name="contains" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="coveredBy" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="covers" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="crosses" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="disjoint" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="equalsTopo" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="intersects" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="overlaps" arg1="A" arg2="B">true</op></test>
|
|
<test><op name="touches" arg1="A" arg2="B">false</op></test>
|
|
<test><op name="within" arg1="A" arg2="B">false</op></test>
|
|
</case>
|
|
|
|
</run>
|