Skip to content

Commit

Permalink
Rename function: 'edges_intersect' -> 'contour_self_intersects'
Browse files Browse the repository at this point in the history
  • Loading branch information
lycantropos committed May 25, 2021
1 parent 47f7cae commit d99421e
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 17 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,10 +80,10 @@ With contours
```
we can check if they are self-intersecting or not
```python
>>> from bentley_ottmann.planar import edges_intersect
>>> edges_intersect(triangle)
>>> from bentley_ottmann.planar import contour_self_intersects
>>> contour_self_intersects(triangle)
False
>>> edges_intersect(degenerate_triangle)
>>> contour_self_intersects(degenerate_triangle)
True

```
Expand Down
8 changes: 4 additions & 4 deletions bentley_ottmann/planar.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@
to_sorted_pair as _to_sorted_pair)


def edges_intersect(contour: _Contour) -> bool:
def contour_self_intersects(contour: _Contour) -> bool:
"""
Checks if polygonal contour has self-intersection.
Checks if contour has self-intersection.
Based on Bentley-Ottmann algorithm.
Expand Down Expand Up @@ -47,9 +47,9 @@ def edges_intersect(contour: _Contour) -> bool:
>>> from ground.base import get_context
>>> context = get_context()
>>> Contour, Point = context.contour_cls, context.point_cls
>>> edges_intersect(Contour([Point(0, 0), Point(2, 0), Point(2, 2)]))
>>> contour_self_intersects(Contour([Point(0, 0), Point(2, 0), Point(2, 2)]))
False
>>> edges_intersect(Contour([Point(0, 0), Point(2, 0), Point(1, 0)]))
>>> contour_self_intersects(Contour([Point(0, 0), Point(2, 0), Point(1, 0)]))
True
"""
vertices = contour.vertices
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
from ground.hints import Contour
from hypothesis import given

from bentley_ottmann.planar import edges_intersect
from bentley_ottmann.planar import contour_self_intersects
from tests.utils import (contour_to_edges,
pop_left_vertex,
reverse_contour,
Expand All @@ -17,14 +17,14 @@

@given(strategies.contours)
def test_basic(contour: Contour) -> None:
result = edges_intersect(contour)
result = contour_self_intersects(contour)

assert isinstance(result, bool)


@given(strategies.triangular_contours)
def test_base_case(context: Context, contour: Contour) -> None:
result = edges_intersect(contour)
result = contour_self_intersects(contour)

left_vertex, mid_vertex, right_vertex = sorted(contour.vertices)
assert result is context.segment_contains_point(
Expand All @@ -36,8 +36,8 @@ def test_step(context: Context, contour: Contour) -> None:
first_vertex, rest_contour = pop_left_vertex(contour)
rest_vertices = rest_contour.vertices

result = edges_intersect(rest_contour)
next_result = edges_intersect(contour)
result = contour_self_intersects(rest_contour)
next_result = contour_self_intersects(contour)

first_edge = context.segment_cls(first_vertex, rest_vertices[0])
last_edge = context.segment_cls(rest_vertices[-1], first_vertex)
Expand Down Expand Up @@ -75,19 +75,19 @@ def test_step(context: Context, contour: Contour) -> None:

@given(strategies.contours)
def test_reversed(contour: Contour) -> None:
result = edges_intersect(contour)
result = contour_self_intersects(contour)

assert result is edges_intersect(reverse_contour(contour))
assert result is contour_self_intersects(reverse_contour(contour))


@given(strategies.contours)
def test_reversed_coordinates(contour: Contour) -> None:
result = edges_intersect(contour)
result = contour_self_intersects(contour)

assert result is edges_intersect(reverse_contour_coordinates(contour))
assert result is contour_self_intersects(reverse_contour_coordinates(contour))


@given(strategies.degenerate_contours)
def test_degenerate_contour(contour: Contour) -> None:
with pytest.raises(ValueError):
edges_intersect(contour)
contour_self_intersects(contour)

0 comments on commit d99421e

Please sign in to comment.