| 1234567891011121314151617181920212223242526 |
- """Test recovery from operation on invalid geometries"""
- import unittest
- import pytest
- import shapely
- from shapely.errors import TopologicalError
- from shapely.geometry import Polygon
- class InvalidGeometriesTestCase(unittest.TestCase):
- def test_invalid_intersection(self):
- # Make a self-intersecting polygon
- polygon_invalid = Polygon([(0, 0), (1, 1), (1, -1), (0, 1), (0, 0)])
- assert not polygon_invalid.is_valid
- # Intersect with a valid polygon
- polygon = Polygon([(-0.5, -0.5), (-0.5, 0.5), (0.5, 0.5), (0.5, -5)])
- assert polygon.is_valid
- assert polygon_invalid.intersects(polygon)
- with pytest.raises((TopologicalError, shapely.GEOSException)):
- polygon_invalid.intersection(polygon)
- with pytest.raises((TopologicalError, shapely.GEOSException)):
- polygon.intersection(polygon_invalid)
|