<run>
  <precisionModel type="FLOATING" />

<case>
  <desc>P - empty point</desc>
  <a>    POINT EMPTY </a>
<test><op name="minClearance" arg1='A' >  1.7976931348623157E308	</op></test>
<test><op name="minClearanceLine" arg1='A' >  LINESTRING EMPTY </op></test>
</case>

<case>
  <desc>P - single point</desc>
  <a>    POINT (100 100) </a>
<test><op name="minClearance" arg1='A' >  1.7976931348623157E308	</op></test>
<test><op name="minClearanceLine" arg1='A' >  LINESTRING EMPTY </op></test>
</case>

<case>
  <desc>mP - points</desc>
  <a>    MULTIPOINT ( (100 100), (10 100) ) </a>
<test><op name="minClearance" arg1='A' >  90	</op></test>
<test><op name="minClearanceLine" arg1='A' >  LINESTRING (100 100, 10 100) </op></test>
</case>

<case>
  <desc>mP - two identical points</desc>
  <a>    MULTIPOINT ( (100 100), (100 100) ) </a>
<test><op name="minClearance" arg1='A' >  1.7976931348623157E308	</op></test>
<test><op name="minClearanceLine" arg1='A' >  LINESTRING EMPTY </op></test>
</case>

<case>
  <desc>mP - points</desc>
  <a>    MULTIPOINT ((100 100), (10 100), (30 100)) </a>
<test><op name="minClearance" arg1='A' >  20	</op></test>
<test><op name="minClearanceLine" arg1='A' >  LINESTRING (10 100, 30 100) </op></test>
</case>

<case>
  <desc>L - linestring</desc>
  <a>    LINESTRING (100 100, 200 100, 200 200, 150 150) </a>
<test><op name="minClearance" arg1='A' >  50	</op></test>
<test><op name="minClearanceLine" arg1='A' >  LINESTRING (150 150, 150 100)	</op></test>
</case>

<case>
  <desc>L - empty linestring</desc>
  <a>    LINESTRING EMPTY </a>
<test><op name="minClearance" arg1='A' >  1.7976931348623157E308	</op></test>
<test><op name="minClearanceLine" arg1='A' >  LINESTRING EMPTY	</op></test>
</case>

<case>
  <desc>ML - linestring</desc>
  <a>    MULTILINESTRING ((100 100, 200 100, 200 200, 150 150), 
  (100 200, 150 170)) </a>
<test><op name="minClearance" arg1='A' >  14.142135623730951	</op></test>
<test><op name="minClearanceLine" arg1='A' >  LINESTRING (150 170, 160 160) </op></test>
</case>

<case>
  <desc>A - empty polygon</desc>
  <a>    POLYGON EMPTY </a>
<test><op name="minClearance" arg1='A' >  1.7976931348623157E308	</op></test>
<test><op name="minClearanceLine" arg1='A' >  LINESTRING EMPTY </op></test>
</case>

<case>
  <desc>A - single polygon #1</desc>
  <a>    POLYGON ((100 100, 300 100, 200 200, 100 100)) </a>
<test><op name="minClearance" arg1='A' >  100	</op></test>
<test><op name="minClearanceLine" arg1='A' >  LINESTRING (200 200, 200 100) </op></test>
</case>

<case>
  <desc>A - single polygon #2</desc>
  <a>    POLYGON ((300 400, 100 350, 250 320, 50 250, 298 200, 50 150, 150 100, 300 50, 300 50, 300 50, 300 400)) </a>
<test><op name="minClearance" arg1='A' >  2	</op></test>
<test><op name="minClearanceLine" arg1='A' >  LINESTRING (298 200, 300 200) </op></test>
</case>

<case>
  <desc>mA - multiple polygons</desc>
  <a>    MULTIPOLYGON (((100 100, 300 100, 200 200, 100 100)), ((150 250, 250 250, 200 220, 150 250))) </a>
<test><op name="minClearance" arg1='A' >  20	</op></test>
<test><op name="minClearanceLine" arg1='A' >  LINESTRING (200 200, 200 220) </op></test>
</case>

</run>
