Esempio n. 1
0
 def _intersects_both(
     point: Point,
     prep_traces_first: prepared.PreparedGeometry,
     prep_traces_second: prepared.PreparedGeometry,
     buffer_value: float,
 ):
     return prep_traces_first.intersects(
         point.buffer(buffer_value)) and prep_traces_second.intersects(
             point.buffer(buffer_value))
Esempio n. 2
0
def test_prepared_predicates():
    # check prepared predicates give the same result as regular predicates
    polygon1 = Polygon([(0, 0), (0, 1), (1, 1), (1, 0), (0, 0)])
    polygon2 = Polygon([(0.5, 0.5), (1.5, 0.5), (1.0, 1.0), (0.5, 0.5)])
    point2 = Point(0.5, 0.5)
    polygon_empty = Polygon()
    prepared_polygon1 = PreparedGeometry(polygon1)
    for geom2 in (polygon2, point2, polygon_empty):
        assert polygon1.disjoint(geom2) == prepared_polygon1.disjoint(geom2)
        assert polygon1.touches(geom2) == prepared_polygon1.touches(geom2)
        assert polygon1.intersects(geom2) == prepared_polygon1.intersects(
            geom2)
        assert polygon1.crosses(geom2) == prepared_polygon1.crosses(geom2)
        assert polygon1.within(geom2) == prepared_polygon1.within(geom2)
        assert polygon1.contains(geom2) == prepared_polygon1.contains(geom2)
        assert polygon1.overlaps(geom2) == prepared_polygon1.overlaps(geom2)
Esempio n. 3
0
def test_prepare_already_prepared():
    polygon = Polygon([(0, 0), (1, 0), (1, 1), (0, 1)])
    prepared = prep(polygon)
    # attempt to prepare an already prepared geometry with `prep`
    result = prep(prepared)
    assert isinstance(result, PreparedGeometry)
    assert result.context is polygon
    # attempt to prepare an already prepared geometry with `PreparedGeometry`
    result = PreparedGeometry(prepared)
    assert isinstance(result, PreparedGeometry)
    assert result.context is polygon
Esempio n. 4
0
def test_prepared_predicates():
    # check prepared predicates give the same result as regular predicates
    polygon1 = Polygon([
        (0, 0), (0, 1), (1, 1), (1, 0), (0, 0)
    ])
    polygon2 = Polygon([
        (0.5, 0.5), (1.5, 0.5), (1.0, 1.0), (0.5, 0.5)
    ])
    point2 = Point(0.5, 0.5)
    polygon_empty = Polygon()
    prepared_polygon1 = PreparedGeometry(polygon1)
    for geom2 in (polygon2, point2, polygon_empty):
        assert polygon1.disjoint(geom2) == prepared_polygon1.disjoint(geom2)
        assert polygon1.touches(geom2) == prepared_polygon1.touches(geom2)
        assert polygon1.intersects(geom2) == prepared_polygon1.intersects(geom2)
        assert polygon1.crosses(geom2) == prepared_polygon1.crosses(geom2)
        assert polygon1.within(geom2) == prepared_polygon1.within(geom2)
        assert polygon1.contains(geom2) == prepared_polygon1.contains(geom2)
        assert polygon1.overlaps(geom2) == prepared_polygon1.overlaps(geom2)
Esempio n. 5
0
def test_prepared_geometry():
    polygon = Polygon([(0, 0), (1, 0), (1, 1), (0, 1)])
    p = PreparedGeometry(polygon)
    assert p.contains(Point(0.5, 0.5))
    assert not p.contains(Point(0.5, 1.5))
Esempio n. 6
0
def test_predicate_not_allowed():
    p = PreparedGeometry(Point(0.0, 0.0).buffer(1.0))
    with pytest.raises(ValueError):
        Point(0.0, 0.0).contains(p)
Esempio n. 7
0
def test_op_not_allowed():
    p = PreparedGeometry(Point(0.0, 0.0).buffer(1.0))
    with pytest.raises(ValueError):
        Point(0.0, 0.0).union(p)
Esempio n. 8
0
def test_prepared_geometry():
    polygon = Polygon([(0, 0), (1, 0), (1, 1), (0, 1)])
    p = PreparedGeometry(polygon)
    assert p.contains(Point(0.5, 0.5))
    assert not p.contains(Point(0.5, 1.5))