| <run> |
| <precisionModel scale="1.0" offsetx="0.0" offsety="0.0"/> |
| |
| <case> |
| <desc>P - point</desc> |
| <a> |
| POINT(10 10) |
| </a> |
| <test> |
| <op name="getboundary" arg1="A"> |
| GEOMETRYCOLLECTION EMPTY |
| </op> |
| </test> |
| </case> |
| |
| <case> |
| <desc>mP - MultiPoint</desc> |
| <a> |
| MULTIPOINT((10 10), (20 20)) |
| </a> |
| <test> |
| <op name="getboundary" arg1="A"> |
| GEOMETRYCOLLECTION EMPTY |
| </op> |
| </test> |
| </case> |
| |
| <case> |
| <desc>L - Line</desc> |
| <a> |
| LINESTRING(10 10, 20 20) |
| </a> |
| <test> |
| <op name="getboundary" arg1="A"> |
| MULTIPOINT((10 10), (20 20)) |
| </op> |
| </test> |
| </case> |
| |
| <case> |
| <desc>L - closed</desc> |
| <a> |
| LINESTRING(10 10, 20 20, 20 10, 10 10) |
| </a> |
| <test> |
| <op name="getboundary" arg1="A"> |
| MULTIPOINT EMPTY |
| </op> |
| </test> |
| </case> |
| |
| <case> |
| <desc>L - self-intersecting with boundary</desc> |
| <a> |
| LINESTRING(40 40, 100 100, 180 100, 180 180, 100 180, 100 100) |
| </a> |
| <test> |
| <op name="getboundary" arg1="A"> |
| MULTIPOINT((40 40), (100 100)) |
| </op> |
| </test> |
| </case> |
| |
| <case> |
| <desc>mL - 2 lines with common endpoint</desc> |
| <a> |
| MULTILINESTRING( |
| (10 10, 20 20), |
| (20 20, 30 30)) |
| </a> |
| <test> |
| <op name="getboundary" arg1="A"> |
| MULTIPOINT((10 10), (30 30)) |
| </op> |
| </test> |
| </case> |
| |
| <case> |
| <desc>mL - 3 lines with common endpoint</desc> |
| <a> |
| MULTILINESTRING( |
| (10 10, 20 20), |
| (20 20, 30 20), |
| (20 20, 30 30)) |
| </a> |
| <test> |
| <op name="getboundary" arg1="A"> |
| MULTIPOINT((10 10), (20 20), (30 20), (30 30)) |
| </op> |
| </test> |
| </case> |
| |
| <case> |
| <desc>mL - 4 lines with common endpoint</desc> |
| <a> |
| MULTILINESTRING( |
| (10 10, 20 20), |
| (20 20, 30 20), |
| (20 20, 30 30), |
| (20 20, 30 40)) |
| </a> |
| <test> |
| <op name="getboundary" arg1="A"> |
| MULTIPOINT((10 10), (30 20), (30 30), (30 40)) |
| </op> |
| </test> |
| </case> |
| |
| <case> |
| <desc>mL - 2 lines, one closed, with common endpoint</desc> |
| <a> |
| MULTILINESTRING( |
| (10 10, 20 20), |
| (20 20, 20 30, 30 30, 30 20, 20 20)) |
| </a> |
| <test> |
| <op name="getboundary" arg1="A"> |
| MULTIPOINT((10 10), (20 20)) |
| </op> |
| </test> |
| </case> |
| |
| <case> |
| <desc>L - 1 line, self-intersecting, topologically equal to prev case</desc> |
| <a> |
| MULTILINESTRING( |
| (10 10, 20 20, 20 30, 30 30, 30 20, 20 20)) |
| </a> |
| <test> |
| <op name="getboundary" arg1="A"> |
| MULTIPOINT((10 10), (20 20)) |
| </op> |
| </test> |
| </case> |
| |
| <case> |
| <desc>A - polygon with no holes</desc> |
| <a> |
| POLYGON( |
| (40 60, 420 60, 420 320, 40 320, 40 60)) |
| </a> |
| <test> |
| <op name="getboundary" arg1="A"> |
| LINESTRING(40 60, 420 60, 420 320, 40 320, 40 60) |
| </op> |
| </test> |
| </case> |
| |
| <case> |
| <desc>A - polygon with 1 hole</desc> |
| <a> |
| POLYGON( |
| (40 60, 420 60, 420 320, 40 320, 40 60), |
| (200 140, 160 220, 260 200, 200 140)) |
| </a> |
| <test> |
| <op name="getboundary" arg1="A"> |
| MULTILINESTRING( |
| (40 60, 420 60, 420 320, 40 320, 40 60), |
| (200 140, 160 220, 260 200, 200 140)) |
| </op> |
| </test> |
| </case> |
| |
| </run> |