# [geos-devel] [GEOS] #731: GEOSEqualsExact returns False where GEOSEquals returns True

GEOS geos-trac at osgeo.org
Thu Jul 9 01:23:41 PDT 2015

```#731: GEOSEqualsExact returns False where GEOSEquals returns True
------------------------+--------------------------
Reporter:  mwtoews     |      Owner:  geos-devel@…
Type:  defect      |     Status:  new
Priority:  minor       |  Milestone:  3.4.3
Component:  Default     |    Version:  3.4.2
Severity:  Unassigned  |   Keywords:
------------------------+--------------------------
For example using Shapely with GEOS 3.4.2-CAPI-1.8.2 r3921,
{{{
from shapely.wkt import loads
A = loads('LINESTRING (20 20, 20 100, 100 20, 20 20)')
B = loads('MULTILINESTRING ((20 20, 20 100, 60 60), (60 60, 100 20, 20
20))')
A.almost_equals(B)  # False
A.disjoint(B) # False
A.equals(B)  # True
A.relate(B)  # 1FFFFFFF2
}}}
Note that Shapely calls GEOSEqualsExact using the method named
almost_equals. Both almost_equals and equals should be True, but only
almost_equals is False.

And for a test case with precision issues, where GEOSEqualsExact should
ideally return True is as follows:
{{{
A = loads('LINESTRING (20 20, 20 150, 100 20, 20 20)')
B = loads('MULTILINESTRING ((20 20, 20 150, 69.52380952380952
69.52380952380952), (69.52380952380952 69.52380952380952, 100 20, 20
20))')
A.almost_equals(B)  # False
A.disjoint(B)  # False
A.equals(B)  # False
A.relate(B)  # 1F1FFF1F2
}}}

--
Ticket URL: <https://trac.osgeo.org/geos/ticket/731>
GEOS <http://trac.osgeo.org/geos>
GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS).
```

More information about the geos-devel mailing list