diff -Naur Shapely-1.7.1-original/shapely/geos.py Shapely-1.7.1/shapely/geos.py
--- Shapely-1.7.1-original/shapely/geos.py 2020-08-20 16:02:11.000000000 -0400
+++ Shapely-1.7.1/shapely/geos.py 2021-03-10 12:54:49.075728259 -0500
@@ -84,7 +84,7 @@
'libgeos_c.so.1',
'libgeos_c.so',
]
- _lgeos = load_dll('geos_c', fallbacks=alt_paths)
+ _lgeos = load_dll('libgeos_c', fallbacks=alt_paths)
# Necessary for environments with only libc.musl
c_alt_paths = [
'libc.musl-x86_64.so.1'
diff -Naur Shapely-1.7.1-original/tests/test_create_inconsistent_dimensionality.py Shapely-1.7.1/tests/test_create_inconsistent_dimensionality.py
--- Shapely-1.7.1-original/tests/test_create_inconsistent_dimensionality.py 2020-08-20 16:02:11.000000000 -0400
+++ Shapely-1.7.1/tests/test_create_inconsistent_dimensionality.py 2021-03-10 14:35:22.383306748 -0500
@@ -29,8 +29,15 @@
wkt_cases = [
+ # for Shapely 1.7.1, does not preserve 3rd dimension by default:
+ ('MULTIPOINT (1 1 1, 2 2)', 'MULTIPOINT (1.0000000000000000 1.0000000000000000, 2.0000000000000000 2.0000000000000000)'),
+ ('MULTIPOINT (1 1, 2 2 2)', 'MULTIPOINT (1.0000000000000000 1.0000000000000000, 2.0000000000000000 2.0000000000000000)'),
('LINESTRING (1 1 1, 2 2)', 'LINESTRING (1.0000000000000000 1.0000000000000000, 2.0000000000000000 2.0000000000000000)'),
- ('POLYGON ((0 0 0, 1 0 0, 1 1, 0 1 0, 0 0 0))', 'POLYGON ((0.0000000000000000 0.0000000000000000, 1.0000000000000000 0.0000000000000000, 1.0000000000000000 1.0000000000000000, 0.0000000000000000 1.0000000000000000, 0.0000000000000000 0.0000000000000000))')
+ ('POLYGON ((0 0 0, 1 0 0, 1 1, 0 1 0, 0 0 0))', 'POLYGON ((0.0000000000000000 0.0000000000000000, 1.0000000000000000 0.0000000000000000, 1.0000000000000000 1.0000000000000000, 0.0000000000000000 1.0000000000000000, 0.0000000000000000 0.0000000000000000))'),
+ # drop 3rd dimension
+ ('LINESTRING (1 1, 2 2 2)', 'LINESTRING (1.0000000000000000 1.0000000000000000, 2.0000000000000000 2.0000000000000000)'),
+ ('POLYGON ((0 0, 1 0 1, 1 1, 0 1, 0 0))',
+ 'POLYGON ((0.0000000000000000 0.0000000000000000, 1.0000000000000000 0.0000000000000000, 1.0000000000000000 1.0000000000000000, 0.0000000000000000 1.0000000000000000, 0.0000000000000000 0.0000000000000000))'),
]
diff -Naur Shapely-1.7.1-original/tests/test_svg.py Shapely-1.7.1/tests/test_svg.py
--- Shapely-1.7.1-original/tests/test_svg.py 2020-08-20 16:02:11.000000000 -0400
+++ Shapely-1.7.1/tests/test_svg.py 2021-03-10 12:54:49.076728265 -0500
@@ -174,7 +174,8 @@
self.assertSVG(GeometryCollection(), '<g />')
# Valid
self.assertSVG(
- Point(7, 3).union(LineString([(4, 2), (8, 4)])),
+ GeometryCollection(
+ [Point(7, 3), LineString([(4, 2), (8, 4)])]),
'<g><circle cx="7.0" cy="3.0" r="3.0" stroke="#555555" '
'stroke-width="1.0" fill="#66cc99" opacity="0.6" />'
'<polyline fill="none" stroke="#66cc99" stroke-width="2.0" '
diff -Naur Shapely-1.7.1-original/tests/test_wkb.py Shapely-1.7.1/tests/test_wkb.py
--- Shapely-1.7.1-original/tests/test_wkb.py 2020-08-20 16:02:11.000000000 -0400
+++ Shapely-1.7.1/tests/test_wkb.py 2021-03-10 12:54:49.076728265 -0500
@@ -1,6 +1,12 @@
+import binascii
+
+import pytest
+
+from shapely import wkt
from shapely.wkb import dumps, loads
from shapely.geometry import Point
-import binascii
+from shapely.geos import geos_version
+
def bin2hex(value):
@@ -49,3 +55,20 @@
# replace geometry srid with another
result = dumps(geom, srid=27700)
assert bin2hex(result) == "0101000020346C0000333333333333F33F3333333333330B40"
+
+
+requires_geos_39 = pytest.mark.xfail(
+ geos_version < (3, 9, 0), reason="GEOS >= 3.9.0 is required", strict=True)
+
+
+@requires_geos_39
+def test_point_empty():
+ g = wkt.loads("POINT EMPTY")
+ assert g.wkb_hex == "0101000000000000000000F87F000000000000F87F"
+
+
+@requires_geos_39
+def test_point_z_empty():
+ g = wkt.loads("POINT Z EMPTY")
+ assert g.wkb_hex == \
+ "0101000080000000000000F87F000000000000F87F000000000000F87F"