From f47d13f69ec8bb9659b510900b355add6350d69a Mon Sep 17 00:00:00 2001 From: Kelsey Jordahl Date: Tue, 2 Jul 2013 21:38:25 -0400 Subject: [PATCH] Tests for set operators --- tests/test_geoseries.py | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/tests/test_geoseries.py b/tests/test_geoseries.py index d341bda..39b8657 100644 --- a/tests/test_geoseries.py +++ b/tests/test_geoseries.py @@ -4,6 +4,15 @@ from shapely.geometry import Polygon, Point, LineString from geopandas import GeoSeries +def geom_equals(this, that): + """ + Test for geometric equality, allowing all empty geometries to be considered equal + """ + empty = np.logical_and(this.is_empty, that.is_empty) + eq = this.equals(that) + return np.all(np.logical_or(eq, empty)) + + class TestSeries(unittest.TestCase): def setUp(self): @@ -99,27 +108,30 @@ class TestSeries(unittest.TestCase): u = self.g1.union(self.g2) assert u[0].equals(self.sq) assert u[1].equals(self.sq) + assert geom_equals(u, self.g1 | self.g2) def test_union_polgon(self): u = self.g1.union(self.t2) assert u[0].equals(self.sq) assert u[1].equals(self.sq) - def test_difference_series(self): - u = self.g1.difference(self.g2) - assert u[0].is_empty - assert u[1].equals(self.t2) - def test_symmetric_difference_series(self): u = self.g3.symmetric_difference(self.g4) assert u[0].equals(self.sq) assert u[1].equals(self.sq) + assert geom_equals(u, self.g3 ^ self.g4) def test_symmetric_difference_poly(self): u = self.g3.symmetric_difference(self.t1) assert u[0].is_empty assert u[1].equals(self.sq) + def test_difference_series(self): + u = self.g1.difference(self.g2) + assert u[0].is_empty + assert u[1].equals(self.t2) + assert geom_equals(u, self.g1 - self.g2) + def test_difference_poly(self): u = self.g1.difference(self.t2) assert u[0].equals(self.t1)