| <run> |
| <precisionModel type="FLOATING"/> |
| |
| <case> |
| <desc>P/P: same point [dim(0){A.P.Int = B.P.Int}]</desc> |
| <a> |
| POINT(20 20) |
| </a> |
| <b> |
| POINT(20 20) |
| </b> |
| <test> |
| <op name="relate" arg1="A" arg2="B" arg3="0FFFFFFF2">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>P/P: different point [dim(0){A.P.Int = B.P.Ext}]</desc> |
| <a> |
| POINT(20 20) |
| </a> |
| <b> |
| POINT(40 60) |
| </b> |
| <test> |
| <op name="relate" arg1="A" arg2="B" arg3="FF0FFF0F2">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>P/mP: different points [dim(0){A.P.Int = B.3P.Ext}]</desc> |
| <a> |
| POINT(40 40) |
| </a> |
| <b> |
| MULTIPOINT((20 20), (80 80), (20 120)) |
| </b> |
| <test> |
| <op name="relate" arg1="A" arg2="B" arg3="FF0FFF0F2">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>P/mP: point A within one of B points [dim(0){A.P.Int = B.3P1.Int}]</desc> |
| <a> |
| POINT(20 20) |
| </a> |
| <b> |
| MULTIPOINT((20 20), (80 80), (20 120)) |
| </b> |
| <test> |
| <op name="relate" arg1="A" arg2="B" arg3="0FFFFF0F2">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>mP/mP-1-1: same points [dim(0){A.3P1.Int = B.3P1.Int}, dim(0){A.3P2.Int = B.3P2.Int}, dim(0){A.3P3.Int = B.3P3.Int}]</desc> |
| <a> |
| MULTIPOINT((40 40), (80 60), (120 100)) |
| </a> |
| <b> |
| MULTIPOINT((40 40), (80 60), (120 100)) |
| </b> |
| <test> |
| <op name="relate" arg1="A" arg2="B" arg3="0FFFFFFF2">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>mP/mP-1-2: same but different sequence of points [dim(0){A.3P1.Int = B.3P1.Int}, dim(0){A.3P1.Int = B.3P3.Int}, dim(0){A.3P3.Int = B.3P2.Int}]</desc> |
| <a> |
| MULTIPOINT((40 40), (80 60), (120 100)) |
| </a> |
| <b> |
| MULTIPOINT((40 40), (120 100), (80 60)) |
| </b> |
| <test> |
| <op name="relate" arg1="A" arg2="B" arg3="0FFFFFFF2">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>mP/mP-2: different points [dim(0){A.4P.Int = B.4P.Ext}]</desc> |
| <a> |
| MULTIPOINT((40 40), (60 100), (100 60), (120 120)) |
| </a> |
| <b> |
| MULTIPOINT((20 120), (60 60), (100 100), (140 40)) |
| </b> |
| <test> |
| <op name="relate" arg1="A" arg2="B" arg3="FF0FFF0F2">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>mP/mP-5-1: same points [dim(0){A.4P.Int = B.4P.Int}]</desc> |
| <a> |
| MULTIPOINT((20 20), (80 70), (140 120), (200 170)) |
| </a> |
| <b> |
| MULTIPOINT((20 20), (80 70), (140 120), (200 170)) |
| </b> |
| <test> |
| <op name="relate" arg1="A" arg2="B" arg3="0FFFFFFF2">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>mP/mP-5-2: same points but different sequence [dim(0){A.4P.Int = B.4P.Int}]</desc> |
| <a> |
| MULTIPOINT((20 20), (140 120), (80 70), (200 170)) |
| </a> |
| <b> |
| MULTIPOINT((80 70), (20 20), (200 170), (140 120)) |
| </b> |
| <test> |
| <op name="relate" arg1="A" arg2="B" arg3="0FFFFFFF2">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>mP/mP-5-3: some points same [dim(0){A.4P2.Int = B.2P1.Int}, dim(0){A.4P3.Int = B.2P2.Int}]</desc> |
| <a> |
| MULTIPOINT((20 20), (80 70), (140 120), (200 170)) |
| </a> |
| <b> |
| MULTIPOINT((80 70), (140 120)) |
| </b> |
| <test> |
| <op name="relate" arg1="A" arg2="B" arg3="0F0FFFFF2">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>mP/mP-5-4: some points same, in a different sequence [dim(0){A.4P1.Int = B.2P2.Int}, dim(0){A.4P4.Int = B.2P1.Int}]</desc> |
| <a> |
| MULTIPOINT((80 70), (20 200), (200 170), (140 120)) |
| </a> |
| <b> |
| MULTIPOINT((140 120), (80 70)) |
| </b> |
| <test> |
| <op name="relate" arg1="A" arg2="B" arg3="0F0FFFFF2">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>mP/mP-6-1: some points same, some different [dim(0){A.4P4.Int = B.3P2.Int}]</desc> |
| <a> |
| MULTIPOINT((80 70), (20 20), (200 170), (140 120)) |
| </a> |
| <b> |
| MULTIPOINT((80 170), (140 120), (200 80)) |
| </b> |
| <test> |
| <op name="relate" arg1="A" arg2="B" arg3="0F0FFF0F2">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>mP/mP-6-2: dim(0){A.4P1.Int = B.4P4.Int}, dim(0){A.4P4.Int = B.4P2.Int}</desc> |
| <a> |
| MULTIPOINT((80 70), (20 20), (200 170), (140 120)) |
| </a> |
| <b> |
| MULTIPOINT((80 170), (140 120), (200 80), (80 70)) |
| </b> |
| <test> |
| <op name="relate" arg1="A" arg2="B" arg3="0F0FFF0F2">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> |