def test_multipolygon_cx_selection(gp_multipolygon, rect): x0, y0, x1, y1 = rect for xslice in get_slices(x0, x1): for yslice in get_slices(y0, y1): expected = MultiPolygonArray.from_geopandas( gp_multipolygon.cx[xslice, yslice]) result = MultiPolygonArray.from_geopandas(gp_multipolygon).cx[ xslice, yslice] assert all(expected == result)
def test_multipolygon_intersects_rect(gp_multipolygon, rect): sg_rect = sg.box(*rect) expected = gp_multipolygon.intersects(sg_rect) multipolygons = MultiPolygonArray.from_geopandas(gp_multipolygon) # Test MultiPolygonArray.intersects_rect result = multipolygons.intersects_bounds(rect) np.testing.assert_equal(result, expected) # Test MultiPolygonArray.intersects_rect with inds inds = np.flipud(np.arange(0, len(multipolygons))) result = multipolygons.intersects_bounds(rect, inds) np.testing.assert_equal(result, np.flipud(expected)) # Test MultiPolygon.intersects_rect result = np.array([ multipolygon.intersects_bounds(rect) for multipolygon in multipolygons ]) np.testing.assert_equal(result, expected)
def test_multipolygon_area(gp_multipolygon): multipolygons = MultiPolygonArray.from_geopandas(gp_multipolygon) expected_area = gp_multipolygon.area area = multipolygons.area np.testing.assert_allclose(area, expected_area)