def test_line_interpolate_point_empty(geom, normalized): # These geometries segfault in some versions of GEOS (in 3.8.0, still # some of them segfault). Instead, we patched this to return POINT EMPTY. # This matches GEOS 3.8.0 behavior on simple empty geometries. assert_geometries_equal( shapely.line_interpolate_point(geom, 0.2, normalized=normalized), empty_point)
def test_line_interpolate_point_geom_array(): actual = shapely.line_interpolate_point( [line_string, linear_ring, multi_line_string], -1) assert_geometries_equal(actual[0], shapely.Geometry("POINT (1 0)")) assert_geometries_equal(actual[1], shapely.Geometry("POINT (0 1)")) assert_geometries_equal(actual[2], shapely.Geometry("POINT (0.5528 1.1056)"), tolerance=0.001)
def interpolate(self, distance, normalized=False): """Return a point at the specified distance along a linear geometry Negative length values are taken as measured in the reverse direction from the end of the geometry. Out-of-range index values are handled by clamping them to the valid range of values. If the normalized arg is True, the distance will be interpreted as a fraction of the geometry's length. """ return shapely.line_interpolate_point(self, distance, normalized=normalized)
def test_line_interpolate_point_nan(): assert shapely.line_interpolate_point(line_string, np.nan) is None
def test_line_interpolate_point_none(): assert shapely.line_interpolate_point(None, 0.2) is None
def test_line_interpolate_point_invalid_type(geom, normalized): with pytest.raises(TypeError): assert shapely.line_interpolate_point(geom, 0.2, normalized=normalized)
def test_line_interpolate_point_float_array(): actual = shapely.line_interpolate_point(line_string, [0.2, 1.5, -0.2]) assert_geometries_equal(actual[0], shapely.Geometry("POINT (0.2 0)")) assert_geometries_equal(actual[1], shapely.Geometry("POINT (1 0.5)")) assert_geometries_equal(actual[2], shapely.Geometry("POINT (1 0.8)"))
def test_line_interpolate_point_geom_array_normalized(): actual = shapely.line_interpolate_point( [line_string, linear_ring, multi_line_string], 1, normalized=True) assert_geometries_equal(actual[0], shapely.Geometry("POINT (1 1)")) assert_geometries_equal(actual[1], shapely.Geometry("POINT (0 0)")) assert_geometries_equal(actual[2], shapely.Geometry("POINT (1 2)"))