| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- import pytest
- from shapely.geometry import MultiLineString, Point, Polygon, shape
- from shapely.geometry.geo import _is_coordinates_empty
- @pytest.mark.parametrize(
- "geom",
- [{"type": "Polygon", "coordinates": None}, {"type": "Polygon", "coordinates": []}],
- )
- def test_polygon_no_coords(geom):
- assert shape(geom) == Polygon()
- def test_polygon_empty_np_array():
- np = pytest.importorskip("numpy")
- geom = {"type": "Polygon", "coordinates": np.array([])}
- assert shape(geom) == Polygon()
- def test_polygon_with_coords_list():
- geom = {"type": "Polygon", "coordinates": [[[5, 10], [10, 10], [10, 5]]]}
- obj = shape(geom)
- assert obj == Polygon([(5, 10), (10, 10), (10, 5)])
- def test_polygon_not_empty_np_array():
- np = pytest.importorskip("numpy")
- geom = {"type": "Polygon", "coordinates": np.array([[[5, 10], [10, 10], [10, 5]]])}
- obj = shape(geom)
- assert obj == Polygon([(5, 10), (10, 10), (10, 5)])
- @pytest.mark.parametrize(
- "geom",
- [
- {"type": "MultiLineString", "coordinates": []},
- {"type": "MultiLineString", "coordinates": [[]]},
- {"type": "MultiLineString", "coordinates": None},
- ],
- )
- def test_multilinestring_empty(geom):
- assert shape(geom) == MultiLineString()
- @pytest.mark.parametrize("coords", [[], [[]], [[], []], None, [[[]]]])
- def test_is_coordinates_empty(coords):
- assert _is_coordinates_empty(coords)
- def test_feature_from_geo_interface():
- # https://github.com/shapely/shapely/issues/1814
- class Feature:
- @property
- def __geo_interface__(self):
- return {
- "type": "Feature",
- "geometry": {"type": "Point", "coordinates": [0, 0]},
- }
- expected = Point([0, 0])
- result = shape(Feature())
- assert result == expected
|