mirror of
https://github.com/wassname/geopandas.git
synced 2026-09-24 13:30:40 +08:00
74 lines
2.2 KiB
Python
74 lines
2.2 KiB
Python
import unittest
|
|
import numpy as np
|
|
from shapely.geometry import Polygon, Point
|
|
from geopandas import GeoSeries
|
|
|
|
|
|
class TestSeries(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
self.t1 = Polygon([(0, 0), (1, 0), (1, 1)])
|
|
self.t2 = Polygon([(0, 0), (1, 1), (0, 1)])
|
|
self.sq = Polygon([(0, 0), (1, 0), (1, 1), (0, 1)])
|
|
self.g1 = GeoSeries([self.t1, self.sq])
|
|
self.g2 = GeoSeries([self.sq, self.t1])
|
|
self.g3 = GeoSeries([self.t1, self.t2])
|
|
self.g4 = GeoSeries([self.t2, self.t1])
|
|
|
|
def test_area(self):
|
|
assert np.allclose(self.g1.area.values, np.array([0.5, 1.0]))
|
|
|
|
def test_bounds(self):
|
|
assert np.allclose(self.g1.bounds.values, np.array([[0, 0, 1, 1],
|
|
[0, 0, 1, 1]]))
|
|
|
|
def test_contains(self):
|
|
assert np.alltrue(self.g1.contains(self.t1))
|
|
assert not np.alltrue(self.g1.contains(Point([5, 5])))
|
|
|
|
def test_length(self):
|
|
l = np.array([2 + np.sqrt(2), 4])
|
|
assert np.allclose(self.g1.length.values, l)
|
|
|
|
def test_union_series(self):
|
|
u = self.g1.union(self.g2)
|
|
assert u[0].equals(self.sq)
|
|
assert u[1].equals(self.sq)
|
|
|
|
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)
|
|
|
|
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_poly(self):
|
|
u = self.g1.difference(self.t2)
|
|
assert u[0].equals(self.t1)
|
|
assert u[1].equals(self.t1)
|
|
|
|
def test_is_valid(self):
|
|
assert np.alltrue(self.g1.is_valid)
|
|
|
|
def test_is_empty(self):
|
|
assert np.alltrue(np.logical_not(self.g1.is_empty))
|
|
|
|
def test_is_ring(self):
|
|
assert np.alltrue(self.g1.is_ring)
|
|
|
|
def test_is_simple(self):
|
|
assert np.alltrue(self.g1.is_simple)
|