def test_properties(polygon_with_segment: PolygonWithSegment) -> None: polygon, segment = polygon_with_segment result = symmetric_subtract_polygon_from_segment(segment, polygon) relation = segment_in_polygon(segment, polygon) assert (not is_mix(result) or (relation in (Relation.DISJOINT, Relation.TOUCH, Relation.CROSS) and (is_empty(result.discrete) and not is_empty(result.linear) and are_compounds_similar(result.shaped, polygon)))) assert (not is_polygon(result) or relation in (Relation.COMPONENT, Relation.ENCLOSED, Relation.WITHIN))
def test_properties( polygon_with_multisegment: PolygonWithMultisegment) -> None: polygon, multisegment = polygon_with_multisegment result = unite_multisegment_with_polygon(multisegment, polygon) relation = multisegment_in_polygon(multisegment, polygon) assert (not is_mix(result) or (relation in (Relation.DISJOINT, Relation.TOUCH, Relation.CROSS) and (is_empty(result.discrete) and not is_empty(result.linear) and are_compounds_similar(result.shaped, polygon)))) assert (not is_polygon(result) or relation in (Relation.COMPONENT, Relation.ENCLOSED, Relation.WITHIN))
def test_properties( multisegment_with_segment: MultisegmentWithSegment) -> None: multisegment, segment = multisegment_with_segment result = symmetric_subtract_multisegment_from_segment( segment, multisegment) assert equivalence( is_empty(result), segment_in_multisegment(segment, multisegment) is Relation.EQUAL)
def test_properties(multisegment_with_segment: MultisegmentWithSegment ) -> None: multisegment, segment = multisegment_with_segment result = subtract_multisegment_from_segment(segment, multisegment) relation = segment_in_multisegment(segment, multisegment) assert equivalence(is_empty(result), relation is Relation.EQUAL or relation is Relation.COMPONENT) assert implication(is_multisegment(result), relation in (Relation.TOUCH, Relation.CROSS, Relation.COMPOSITE, Relation.OVERLAP)) assert implication(is_segment(result), relation in (Relation.DISJOINT, Relation.TOUCH, Relation.CROSS, Relation.COMPOSITE, Relation.OVERLAP))
def test_self_inverse(segment: Segment) -> None: result = symmetric_subtract_segments(segment, segment) assert is_empty(result)
def test_self_inverse(multisegment: Multisegment) -> None: result = symmetric_subtract_multisegments(multisegment, multisegment) assert is_empty(result)
def test_properties(data: DataObject) -> None: strategy = empty_geometries() result = data.draw(strategy) assert is_empty(result)
def test_self_inverse(polygon: Polygon) -> None: result = symmetric_subtract_polygons(polygon, polygon) assert is_empty(result)