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)))
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)))
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)
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)
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)))
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)))
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))