Ejemplo n.º 1
0
def test_absorption_identity(multisegments_pair: MultisegmentsPair) -> None:
    first, second = multisegments_pair

    assert are_multisegments_equivalent(
        complete_intersect_multisegments(first,
                                         unite_multisegments(first, second)),
        first)
def test_absorption_identity(multisegments_pair: MultisegmentsPair) -> None:
    first, second = multisegments_pair

    first_second_intersection = intersect_multisegments(first, second)
    assert (not is_multisegment(first_second_intersection)
            or are_multisegments_equivalent(
                unite_multisegments(first, first_second_intersection), first))
def test_commutative_case(multisegments_pair: MultisegmentsPair) -> None:
    first, second = multisegments_pair

    result = subtract_multisegments(first, second)

    assert equivalence(result == subtract_multisegments(second, first),
                       are_multisegments_equivalent(first, second))
Ejemplo n.º 4
0
def test_absorption_identity(multisegments_pair: MultisegmentsPair) -> None:
    left_multisegment, right_multisegment = multisegments_pair

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

    assert are_multisegments_equivalent(result, left_multisegment)
Ejemplo n.º 5
0
def test_commutative_case(multisegments_pair: MultisegmentsPair) -> None:
    left_multisegment, right_multisegment = multisegments_pair

    result = subtract_multisegments(left_multisegment, right_multisegment)

    assert equivalence(
        result == subtract_multisegments(right_multisegment,
                                         left_multisegment),
        are_multisegments_equivalent(left_multisegment, right_multisegment))
def test_distribution_over_intersection(
        multisegments_triplet: MultisegmentsTriplet) -> None:
    first, second, third = multisegments_triplet

    second_third_intersection = intersect_multisegments(second, third)
    assert (not is_multisegment(second_third_intersection)
            or are_multisegments_equivalent(
                unite_multisegments(first, second_third_intersection),
                intersect_multisegments(unite_multisegments(first, second),
                                        unite_multisegments(first, third))))
Ejemplo n.º 7
0
def test_repeated(multisegments_triplet: MultisegmentsTriplet) -> None:
    (left_multisegment, mid_multisegment,
     right_multisegment) = multisegments_triplet

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

    assert are_multisegments_equivalent(
        result,
        symmetric_subtract_multisegments(left_multisegment,
                                         right_multisegment))
def test_difference_operand(
        multisegments_triplet: MultisegmentsTriplet) -> None:
    first, second, third = multisegments_triplet

    first_second_difference = subtract_multisegments(first, second)
    second_third_difference = subtract_multisegments(second, third)
    assert (not is_multisegment(first_second_difference)
            or not is_multisegment(second_third_difference)
            or are_multisegments_equivalent(
                unite_multisegments(first_second_difference, third),
                subtract_multisegments(unite_multisegments(first, third),
                                       second_third_difference)))
def test_repeated(multisegments_triplet: MultisegmentsTriplet) -> None:
    first, second, third = multisegments_triplet

    first_second_symmetric_difference = symmetric_subtract_multisegments(
        first, second)
    second_third_symmetric_difference = symmetric_subtract_multisegments(
        second, third)
    assert (not is_multisegment(first_second_symmetric_difference)
            or not is_multisegment(second_third_symmetric_difference)
            or are_multisegments_equivalent(
                symmetric_subtract_multisegments(
                    first_second_symmetric_difference,
                    second_third_symmetric_difference),
                symmetric_subtract_multisegments(first, third)))
Ejemplo n.º 10
0
def test_intersection_subtrahend(
        multisegments_triplet: MultisegmentsTriplet) -> None:
    (left_multisegment, mid_multisegment,
     right_multisegment) = multisegments_triplet

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

    assert are_multisegments_equivalent(
        result,
        unite_multisegments(
            subtract_multisegments(left_multisegment, mid_multisegment),
            subtract_multisegments(left_multisegment, right_multisegment)))
Ejemplo n.º 11
0
def test_difference_operand(
        multisegments_triplet: MultisegmentsTriplet) -> None:
    (left_multisegment, mid_multisegment,
     right_multisegment) = multisegments_triplet

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

    assert are_multisegments_equivalent(
        result,
        subtract_multisegments(
            unite_multisegments(left_multisegment, right_multisegment),
            subtract_multisegments(mid_multisegment, right_multisegment)))
Ejemplo n.º 12
0
def test_distribution_over_intersection(
        multisegments_triplet: MultisegmentsTriplet) -> None:
    (left_multisegment, mid_multisegment,
     right_multisegment) = multisegments_triplet

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

    assert are_multisegments_equivalent(
        result,
        intersect_multisegments(
            unite_multisegments(left_multisegment, mid_multisegment),
            unite_multisegments(left_multisegment, right_multisegment)))
def test_intersection_subtrahend(
        multisegments_triplet: MultisegmentsTriplet) -> None:
    first, second, third = multisegments_triplet

    first_second_difference = subtract_multisegments(first, second)
    first_third_difference = subtract_multisegments(first, third)
    second_third_intersection = intersect_multisegments(second, third)
    assert (not is_multisegment(first_second_difference)
            or not is_multisegment(first_third_difference)
            or not is_multisegment(second_third_intersection)
            or are_multisegments_equivalent(
                subtract_multisegments(first, second_third_intersection),
                unite_multisegments(first_second_difference,
                                    first_third_difference)))
def test_idempotence(multisegment: Multisegment) -> None:
    result = intersect_multisegments(multisegment, multisegment)

    assert are_multisegments_equivalent(result, multisegment)