From c5501d0fad41ed6dc0ed18169b7f1ca16800cb34 Mon Sep 17 00:00:00 2001 From: Azat Ibrakov Date: Tue, 8 Dec 2020 18:15:11 +0300 Subject: [PATCH] Add test for 'multisegment_voronoi' function --- tests/decomposition_tests/strategies.py | 6 +++++ .../test_multisegment_voronoi.py | 22 +++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 tests/decomposition_tests/test_multisegment_voronoi.py diff --git a/tests/decomposition_tests/strategies.py b/tests/decomposition_tests/strategies.py index 4a67740..25a95e5 100644 --- a/tests/decomposition_tests/strategies.py +++ b/tests/decomposition_tests/strategies.py @@ -1,6 +1,7 @@ from functools import partial from typing import Tuple +from clipping.planar import segments_to_multisegment from hypothesis import strategies from hypothesis_geometry import planar @@ -14,6 +15,11 @@ multipoints = coordinates_strategies.flatmap(planar.contours) rational_multipoints = rational_coordinates_strategies.flatmap(planar.contours) +empty_multisegments = strategies.builds(list) +rational_multisegments = (rational_coordinates_strategies + .flatmap(planar.multisegments) + .map(partial(segments_to_multisegment, + accurate=False))) to_non_empty_multisegments = partial(planar.multisegments, min_size=1) non_empty_multisegments = (coordinates_strategies diff --git a/tests/decomposition_tests/test_multisegment_voronoi.py b/tests/decomposition_tests/test_multisegment_voronoi.py new file mode 100644 index 0000000..07e249f --- /dev/null +++ b/tests/decomposition_tests/test_multisegment_voronoi.py @@ -0,0 +1,22 @@ +from hypothesis import given + +from sect.decomposition import (Diagram, + multisegment_voronoi) +from sect.hints import Multisegment +from . import strategies + + +@given(strategies.rational_multisegments) +def test_basic(multisegment: Multisegment) -> None: + result = multisegment_voronoi(multisegment) + + assert isinstance(result, Diagram) + + +@given(strategies.empty_multisegments) +def test_empty(multisegment: Multisegment) -> None: + result = multisegment_voronoi(multisegment) + + assert not result.cells + assert not result.edges + assert not result.vertices