Blob Blame History Raw
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"