Пример #1
0
def test_reversals(multisegments_pair: MultisegmentsPair) -> None:
    left_multisegment, right_multisegment = multisegments_pair

    result = unite_multisegments(left_multisegment, right_multisegment)

    assert are_multisegments_similar(
        result,
        unite_multisegments(reverse_multisegment(left_multisegment),
                            right_multisegment))
    assert are_multisegments_similar(
        result,
        unite_multisegments(left_multisegment,
                            reverse_multisegment(right_multisegment)))
Пример #2
0
def test_reversals(multisegments_pair: MultisegmentsPair) -> None:
    left_multisegment, right_multisegment = multisegments_pair

    result = symmetric_subtract_multisegments(left_multisegment,
                                              right_multisegment)

    assert are_multisegments_similar(
        result,
        symmetric_subtract_multisegments(
            reverse_multisegment(left_multisegment), right_multisegment))
    assert are_multisegments_similar(
        result,
        symmetric_subtract_multisegments(
            left_multisegment, reverse_multisegment(right_multisegment)))
Пример #3
0
def test_right_neutral_element(
        empty_multisegment_with_multisegment: MultisegmentsPair) -> None:
    empty_multisegment, multisegment = empty_multisegment_with_multisegment

    result = symmetric_subtract_multisegments(multisegment, empty_multisegment)

    assert are_multisegments_similar(result, multisegment)
Пример #4
0
def test_left_neutral_element(
        empty_multisegment_with_multisegment: MultisegmentsPair) -> None:
    empty_multisegment, multisegment = empty_multisegment_with_multisegment

    result = unite_multisegments(empty_multisegment, multisegment)

    assert are_multisegments_similar(result, multisegment)
Пример #5
0
def test_union_subtrahend(multisegments_triplet: MultisegmentsTriplet) -> None:
    (left_multisegment, mid_multisegment,
     right_multisegment) = multisegments_triplet

    result = subtract_multisegments(
        left_multisegment,
        unite_multisegments(mid_multisegment, right_multisegment))

    assert are_multisegments_similar(
        result,
        intersect_multisegments(
            subtract_multisegments(left_multisegment, mid_multisegment),
            subtract_multisegments(left_multisegment, right_multisegment)))
Пример #6
0
def test_associativity(multisegments_triplet: MultisegmentsTriplet) -> None:
    (left_multisegment, mid_multisegment,
     right_multisegment) = multisegments_triplet

    result = unite_multisegments(
        unite_multisegments(left_multisegment, mid_multisegment),
        right_multisegment)

    assert are_multisegments_similar(
        result,
        unite_multisegments(
            left_multisegment,
            unite_multisegments(mid_multisegment, right_multisegment)))
Пример #7
0
def test_reversals(
        multipolygon_with_multisegment: MultipolygonWithMultisegment) -> None:
    multipolygon, multisegment = multipolygon_with_multisegment

    result = subtract_multipolygon_from_multisegment(multisegment,
                                                     multipolygon)

    assert result == subtract_multipolygon_from_multisegment(
        multisegment, reverse_multipolygon(multipolygon))
    assert result == subtract_multipolygon_from_multisegment(
        multisegment, reverse_multipolygon_borders(multipolygon))
    assert result == subtract_multipolygon_from_multisegment(
        multisegment, reverse_multipolygon_holes(multipolygon))
    assert result == subtract_multipolygon_from_multisegment(
        multisegment, reverse_multipolygon_holes_contours(multipolygon))
    assert are_multisegments_similar(
        result,
        subtract_multipolygon_from_multisegment(
            reverse_multisegment(multisegment), multipolygon))
    assert are_multisegments_similar(
        result,
        subtract_multipolygon_from_multisegment(
            reverse_multisegment_endpoints(multisegment), multipolygon))