| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- import math
- import numpy as np
- import pytest
- from shapely import (
- GeometryCollection,
- LinearRing,
- LineString,
- MultiLineString,
- MultiPoint,
- MultiPolygon,
- Point,
- Polygon,
- )
- from shapely.geometry import mapping, shape
- from shapely.geometry.base import BaseGeometry, EmptyGeometry
- def empty_generator():
- return iter([])
- class TestEmptiness:
- def test_empty_class(self):
- with pytest.warns(FutureWarning):
- g = EmptyGeometry()
- assert g.is_empty
- def test_empty_base(self):
- with pytest.warns(FutureWarning):
- g = BaseGeometry()
- assert g.is_empty
- def test_empty_point(self):
- assert Point().is_empty
- def test_empty_multipoint(self):
- assert MultiPoint().is_empty
- def test_empty_geometry_collection(self):
- assert GeometryCollection().is_empty
- def test_empty_linestring(self):
- assert LineString().is_empty
- assert LineString(None).is_empty
- assert LineString([]).is_empty
- assert LineString(empty_generator()).is_empty
- def test_empty_multilinestring(self):
- assert MultiLineString([]).is_empty
- def test_empty_polygon(self):
- assert Polygon().is_empty
- assert Polygon(None).is_empty
- assert Polygon([]).is_empty
- assert Polygon(empty_generator()).is_empty
- def test_empty_multipolygon(self):
- assert MultiPolygon([]).is_empty
- def test_empty_linear_ring(self):
- assert LinearRing().is_empty
- assert LinearRing(None).is_empty
- assert LinearRing([]).is_empty
- assert LinearRing(empty_generator()).is_empty
- def test_numpy_object_array():
- geoms = [Point(), GeometryCollection()]
- arr = np.empty(2, object)
- arr[:] = geoms
- def test_shape_empty():
- empty_mp = MultiPolygon()
- empty_json = mapping(empty_mp)
- empty_shape = shape(empty_json)
- assert empty_shape.is_empty
- @pytest.mark.parametrize(
- "geom",
- [
- Point(),
- LineString(),
- Polygon(),
- MultiPoint(),
- MultiLineString(),
- MultiPolygon(),
- GeometryCollection(),
- LinearRing(),
- ],
- )
- def test_empty_geometry_bounds(geom):
- """The bounds of an empty geometry is a tuple of NaNs"""
- assert len(geom.bounds) == 4
- assert all(math.isnan(v) for v in geom.bounds)
|