def test_connecting_span_cyclic(self): s1 = Span(10, 20, 100, True) s2 = Span(80, 90, 100, True) s3 = s1.connecting_span(s2) assert s3.a == 20 assert s3.b == 80 s4 = s2.connecting_span(s1) assert s4.a == 90 assert s4.b == 10
def test_self_connecting_span(self): """The connecting span with a cyclic span should be equivalent to its inverse span.""" s1 = Span(50, 60, 100, True) s2 = s1.connecting_span(s1) assert s2.a == 60 assert s2.b == 50
def test_connecting_span_over_origin(self): """The connecting span should span the origin.""" s1 = Span(50, 60, 100, True) s2 = Span(5, 30, 100, True) s3 = s1.connecting_span(s2) assert s3.a == 60 assert s3.b == 5
def test_connecting_span_consecutive_is_empty(self): """The connecting span between two consecutive spans is empty.""" s1 = Span(10, 30, 100, True) s2 = Span(30, 50, 100, True) assert not s1.overlaps_with(s2) s3 = s1.connecting_span(s2) assert len(s3) == 0
def test_connecting_span_at_origin(self): s1 = Span(50, 60, 100, True) s2 = Span(0, 30, 100, True) s3 = s1.connecting_span(s2) assert s3.a == 60 assert s3.b == 0
def test_connecting_span(self): s1 = Span(20, 50, 100, False) s2 = Span(60, 75, 100, False) s3 = s1.connecting_span(s2) assert s3.a == 50 assert s3.b == 60
def test_connecting_span_linear_no_span(self): s1 = Span(10, 99, 100, False) s2 = Span(0, 10, 100, False) s3 = s1.connecting_span(s2) assert s3 is None
def test_connecting_span_with_overlap(self): """There is no connecting span with overlapping spans.""" s1 = Span(10, 30, 100, True) s2 = Span(20, 50, 100, True) assert not s1.connecting_span(s2)