def test_offset_curve_kwargs(): # check that kwargs are passed through result1 = pygeos.offset_curve( line_string, -2.0, quadsegs=2, join_style="mitre", mitre_limit=2.0 ) result2 = pygeos.offset_curve(line_string, -2.0) assert result1 != result2
def test_offset_curve_non_scalar_kwargs(): msg = "only accepts scalar values" with pytest.raises(TypeError, match=msg): pygeos.offset_curve([line_string, line_string], 1, quadsegs=np.array([8, 9])) with pytest.raises(TypeError, match=msg): pygeos.offset_curve( [line_string, line_string], 1, join_style=["round", "bevel"] ) with pytest.raises(TypeError, match=msg): pygeos.offset_curve([line_string, line_string], 1, mitre_limit=[5.0, 6.0])
def constructive(arr, operation, *args, **kwargs): if operation == 'boundary': geometries = pg.boundary(pg.from_wkb(arr), **kwargs) elif operation == 'buffer': geometries = pg.buffer(pg.from_wkb(arr), *args, **kwargs) elif operation == 'build_area': geometries = pg.build_area(pg.from_wkb(arr), **kwargs) elif operation == 'centroid': geometries = pg.centroid(pg.from_wkb(arr), **kwargs) elif operation == 'clip_by_rect': geometries = pg.clip_by_rect(pg.from_wkb(arr), *args, **kwargs) elif operation == 'convex_hull': geometries = pg.convex_hull(pg.from_wkb(arr), **kwargs) elif operation == 'delaunay_triangles': geometries = pg.delaunay_triangles(pg.from_wkb(arr), **kwargs) elif operation == 'envelope': geometries = pg.envelope(pg.from_wkb(arr), **kwargs) elif operation == 'extract_unique_points': geometries = pg.extract_unique_points(pg.from_wkb(arr), **kwargs) elif operation == 'make_valid': geometries = pg.make_valid(pg.from_wkb(arr), **kwargs) elif operation == 'normalize': geometries = pg.normalize(pg.from_wkb(arr), **kwargs) elif operation == 'offset_curve': geometries = pg.offset_curve(pg.from_wkb(arr), *args, **kwargs) elif operation == 'point_on_surface': geometries = pg.point_on_surface(pg.from_wkb(arr), **kwargs) elif operation == 'reverse': geometries = pg.reverse(pg.from_wkb(arr), **kwargs) elif operation == 'simplify': geometries = pg.simplify(pg.from_wkb(arr), *args, **kwargs) elif operation == 'snap': geometries = pg.snap(pg.from_wkb(arr), *args, **kwargs) elif operation == 'voronoi_polygons': geometries = pg.voronoi_polygons(pg.from_wkb(arr), **kwargs) else: warnings.warn(f'Operation {operation} not supported.') return None return pg.to_wkb(geometries)
def test_offset_curve_join_style_invalid(): with pytest.raises(ValueError, match="'invalid' is not a valid option"): pygeos.offset_curve(line_string, 1.0, join_style="invalid")
def test_offset_curve_distance_array(): # check that kwargs are passed through result = pygeos.offset_curve([line_string, line_string], [-2.0, -3.0]) assert result[0] == pygeos.offset_curve(line_string, -2.0) assert result[1] == pygeos.offset_curve(line_string, -3.0)
def test_offset_curve_empty(): actual = pygeos.offset_curve(empty_line_string, 2.0) assert pygeos.is_empty(actual)
def test_offset_curve_join_style(): with pytest.raises(KeyError): pygeos.offset_curve(line_string, 1.0, join_style="nonsense")