Ejemplo n.º 1
0
def test_commutativity(multipolygons_pair: MultipolygonsPair) -> None:
    left_multipolygon, right_multipolygon = multipolygons_pair

    result = intersect_multipolygons(left_multipolygon, right_multipolygon)

    assert result == intersect_multipolygons(right_multipolygon,
                                             left_multipolygon)
Ejemplo n.º 2
0
def test_reversals(multipolygons_pair: MultipolygonsPair) -> None:
    left_multipolygon, right_multipolygon = multipolygons_pair

    result = intersect_multipolygons(left_multipolygon, right_multipolygon)

    assert result == intersect_multipolygons(
            reverse_multipolygon(left_multipolygon), right_multipolygon)
    assert result == intersect_multipolygons(
            left_multipolygon, reverse_multipolygon(right_multipolygon))
    assert result == intersect_multipolygons(
            reverse_multipolygon_borders(left_multipolygon),
            right_multipolygon)
    assert result == intersect_multipolygons(
            left_multipolygon,
            reverse_multipolygon_borders(right_multipolygon))
    assert result == intersect_multipolygons(
            reverse_multipolygon_holes(left_multipolygon), right_multipolygon)
    assert result == intersect_multipolygons(
            left_multipolygon, reverse_multipolygon_holes(right_multipolygon))
    assert result == intersect_multipolygons(
            reverse_multipolygon_holes_contours(left_multipolygon),
            right_multipolygon)
    assert result == intersect_multipolygons(
            left_multipolygon,
            reverse_multipolygon_holes_contours(right_multipolygon))
Ejemplo n.º 3
0
def test_difference_operand(multipolygons_triplet: MultipolygonsTriplet
                            ) -> None:
    (left_multipolygon, mid_multipolygon,
     right_multipolygon) = multipolygons_triplet

    result = intersect_multipolygons(
            subtract_multipolygons(left_multipolygon, mid_multipolygon),
            right_multipolygon)

    assert result == subtract_multipolygons(
            intersect_multipolygons(left_multipolygon, right_multipolygon),
            mid_multipolygon)
Ejemplo n.º 4
0
def test_associativity(multipolygons_triplet: MultipolygonsTriplet) -> None:
    (left_multipolygon, mid_multipolygon,
     right_multipolygon) = multipolygons_triplet

    result = intersect_multipolygons(
            intersect_multipolygons(left_multipolygon, mid_multipolygon),
            right_multipolygon)

    assert result == intersect_multipolygons(left_multipolygon,
                                             intersect_multipolygons(
                                                     mid_multipolygon,
                                                     right_multipolygon))
Ejemplo n.º 5
0
def test_distribution_over_union(multipolygons_triplet: MultipolygonsTriplet
                                 ) -> None:
    (left_multipolygon, mid_multipolygon,
     right_multipolygon) = multipolygons_triplet

    result = intersect_multipolygons(left_multipolygon,
                                     unite_multipolygons(mid_multipolygon,
                                                         right_multipolygon))

    assert result == unite_multipolygons(
            intersect_multipolygons(left_multipolygon, mid_multipolygon),
            intersect_multipolygons(left_multipolygon, right_multipolygon))
Ejemplo n.º 6
0
def test_distribution_over_intersection(multipolygons_triplet
                                        : MultipolygonsTriplet) -> None:
    (left_multipolygon, mid_multipolygon,
     right_multipolygon) = multipolygons_triplet

    result = unite_multipolygons(left_multipolygon,
                                 intersect_multipolygons(mid_multipolygon,
                                                         right_multipolygon))

    assert are_multipolygons_similar(
            result,
            intersect_multipolygons(unite_multipolygons(left_multipolygon,
                                                        mid_multipolygon),
                                    unite_multipolygons(left_multipolygon,
                                                        right_multipolygon)))
Ejemplo n.º 7
0
def test_right_absorbing_element(empty_multipolygon_with_multipolygon
                                 : MultipolygonsPair) -> None:
    empty_multipolygon, multipolygon = empty_multipolygon_with_multipolygon

    result = intersect_multipolygons(multipolygon, empty_multipolygon)

    assert not result.polygons
Ejemplo n.º 8
0
def test_absorption_identity(multipolygons_pair: MultipolygonsPair) -> None:
    left_multipolygon, right_multipolygon = multipolygons_pair

    result = intersect_multipolygons(left_multipolygon,
                                     unite_multipolygons(left_multipolygon,
                                                         right_multipolygon))

    assert are_multipolygons_similar(result, left_multipolygon)
Ejemplo n.º 9
0
def test_equivalents(multipolygons_pair: MultipolygonsPair) -> None:
    left_multipolygon, right_multipolygon = multipolygons_pair

    result = unite_multipolygons(left_multipolygon, right_multipolygon)

    assert result == symmetric_subtract_multipolygons(
            symmetric_subtract_multipolygons(left_multipolygon,
                                             right_multipolygon),
            intersect_multipolygons(left_multipolygon, right_multipolygon))
Ejemplo n.º 10
0
def test_equivalents(multipolygons_pair: MultipolygonsPair) -> None:
    left_multipolygon, right_multipolygon = multipolygons_pair

    result = intersect_multipolygons(left_multipolygon, right_multipolygon)

    assert are_multipolygons_similar(
            result,
            subtract_multipolygons(left_multipolygon,
                                   subtract_multipolygons(left_multipolygon,
                                                          right_multipolygon)))
Ejemplo n.º 11
0
def test_connection_with_intersect(
        multipolygons_pair: MultipolygonsPair) -> None:
    left_multipolygon, right_multipolygon = multipolygons_pair

    result = complete_intersect_multipolygons(left_multipolygon,
                                              right_multipolygon)

    _, _, multipolygon = result
    assert multipolygon == intersect_multipolygons(left_multipolygon,
                                                   right_multipolygon)
Ejemplo n.º 12
0
def test_idempotence(multipolygon: Multipolygon) -> None:
    result = intersect_multipolygons(multipolygon, multipolygon)

    assert are_multipolygons_similar(result, multipolygon)
Ejemplo n.º 13
0
def test_basic(multipolygons_pair: MultipolygonsPair) -> None:
    left_multipolygon, right_multipolygon = multipolygons_pair

    result = intersect_multipolygons(left_multipolygon, right_multipolygon)

    assert is_multipolygon(result)