| <run> |
| <description> |
| Tests of exact equality and exact equality with normalization |
| </description> |
| |
| <case> |
| <desc>P - point</desc> |
| <a> POINT(10 10) </a> |
| <b> POINT(10 10) </b> |
| <test><op name="equalsExact" arg1="A" arg2="B"> true </op></test> |
| </case> |
| |
| <case> |
| <desc>P - point</desc> |
| <a> POINT(10 10) </a> |
| <b> POINT(10 11) </b> |
| <test><op name="equalsExact" arg1="A" arg2="B"> false </op></test> |
| </case> |
| |
| <case> |
| <desc>mP - MultiPoint</desc> |
| <a> MULTIPOINT((10 10), (20 20)) </a> |
| <b> MULTIPOINT((10 10), (20 20)) </b> |
| <test><op name="equalsExact" arg1="A" arg2="B"> true </op></test> |
| </case> |
| |
| <case> |
| <desc>mP - MultiPoint, permuted</desc> |
| <a> MULTIPOINT((10 10), (20 20)) </a> |
| <b> MULTIPOINT((20 20), (10 10)) </b> |
| <test><op name="equalsExact" arg1="A" arg2="B"> false </op></test> |
| <test><op name="equalsNorm" arg1="A" arg2="B"> true </op></test> |
| </case> |
| |
| <case> |
| <desc>mP - MultiPoint empty</desc> |
| <a> MULTIPOINT EMPTY </a> |
| <b> MULTIPOINT EMPTY </b> |
| <test><op name="equalsExact" arg1="A" arg2="B"> true </op></test> |
| </case> |
| |
| <!-- =========================================================== --> |
| |
| <case> |
| <desc>L - Line</desc> |
| <a> LINESTRING(10 10, 20 20, 30 30) </a> |
| <b> LINESTRING(10 10, 20 20, 30 30) </b> |
| <test><op name="equalsExact" arg1="A" arg2="B"> true </op></test> |
| </case> |
| |
| <case> |
| <desc>L - Line, permuted</desc> |
| <a> LINESTRING(10 10, 20 20, 30 30) </a> |
| <b> LINESTRING(30 30, 20 20, 10 10) </b> |
| <test><op name="equalsExact" arg1="A" arg2="B"> false </op></test> |
| <test><op name="equalsNorm" arg1="A" arg2="B"> true </op></test> |
| </case> |
| |
| <case> |
| <desc>L - closed</desc> |
| <a> LINESTRING(10 10, 20 20, 20 10, 10 10) </a> |
| <b> LINESTRING(10 10, 20 20, 20 10, 10 10) </b> |
| <test><op name="equalsExact" arg1="A" arg2="B"> true </op></test> |
| </case> |
| |
| <case> |
| <desc>L - empty</desc> |
| <a> LINESTRING EMPTY </a> |
| <b> LINESTRING EMPTY </b> |
| <test><op name="equalsExact" arg1="A" arg2="B"> true </op></test> |
| </case> |
| |
| <case> |
| <desc>mL - 2 lines with common endpoint</desc> |
| <a> MULTILINESTRING( |
| (10 10, 20 20), |
| (20 20, 30 30)) </a> |
| <b> MULTILINESTRING( |
| (10 10, 20 20), |
| (20 20, 30 30)) </b> |
| <test><op name="equalsExact" arg1="A" arg2="B"> true </op></test> |
| </case> |
| |
| <case> |
| <desc>mL - 2 lines with common endpoint, permuted</desc> |
| <a> MULTILINESTRING( |
| (10 10, 20 20), |
| (20 20, 30 30)) </a> |
| <b> MULTILINESTRING( |
| (30 30, 20 20), |
| (10 10, 20 20)) </b> |
| <test><op name="equalsExact" arg1="A" arg2="B"> false </op></test> |
| <test><op name="equalsNorm" arg1="A" arg2="B"> true </op></test> |
| </case> |
| |
| <!-- =========================================================== --> |
| |
| <case> |
| <desc>A - polygon with no holes</desc> |
| <a> POLYGON((40 60, 420 60, 420 320, 40 320, 40 60)) </a> |
| <b> POLYGON((40 60, 420 60, 420 320, 40 320, 40 60)) </b> |
| <test><op name="equalsExact" arg1="A" arg2="B"> true </op></test> |
| </case> |
| |
| <case> |
| <desc>A - polygon with no holes, permuted</desc> |
| <a> POLYGON((40 60, 420 60, 420 320, 40 320, 40 60)) </a> |
| <b> POLYGON((420 60, 420 320, 40 320, 40 60, 420 60)) </b> |
| <test><op name="equalsExact" arg1="A" arg2="B"> false </op></test> |
| <test><op name="equalsNorm" arg1="A" arg2="B"> true </op></test> |
| </case> |
| |
| <case> |
| <desc>A - polygon with 1 hole</desc> |
| <a> |
| POLYGON( |
| (40 60, 420 60, 420 320, 40 320, 40 60), |
| (200 140, 160 220, 260 200, 200 140)) |
| </a> |
| <b> |
| POLYGON( |
| (40 60, 420 60, 420 320, 40 320, 40 60), |
| (200 140, 160 220, 260 200, 200 140)) |
| </b> |
| <test><op name="equalsExact" arg1="A" arg2="B"> true </op></test> |
| </case> |
| |
| <case> |
| <desc>A - empty</desc> |
| <a> POLYGON EMPTY </a> |
| <b> POLYGON EMPTY </b> |
| <test><op name="equalsExact" arg1="A" arg2="B"> true </op></test> |
| </case> |
| |
| <case> |
| <desc>mA</desc> |
| <a> MULTIPOLYGON (((50 100, 100 100, 100 50, 50 50, 50 100)), ((150 100, 200 100, 200 50, 150 50, 150 100))) </a> |
| <b> MULTIPOLYGON (((50 100, 100 100, 100 50, 50 50, 50 100)), ((150 100, 200 100, 200 50, 150 50, 150 100))) </b> |
| <test><op name="equalsExact" arg1="A" arg2="B"> true </op></test> |
| </case> |
| |
| <case> |
| <desc>mA - permuted</desc> |
| <a> MULTIPOLYGON (((50 100, 100 100, 100 50, 50 50, 50 100)), ((150 100, 200 100, 200 50, 150 50, 150 100))) </a> |
| <b> MULTIPOLYGON (((150 100, 200 100, 200 50, 150 50, 150 100)), ((50 100, 100 100, 100 50, 50 50, 50 100))) </b> |
| <test><op name="equalsExact" arg1="A" arg2="B"> false </op></test> |
| <test><op name="equalsNorm" arg1="A" arg2="B"> true </op></test> |
| </case> |
| |
| <case> |
| <desc>mA - empty</desc> |
| <a> MULTIPOLYGON EMPTY </a> |
| <b> MULTIPOLYGON EMPTY </b> |
| <test><op name="equalsExact" arg1="A" arg2="B"> true </op></test> |
| </case> |
| |
| </run> |