def test_sub_wrapped(self): s = Span(5, 16, 10, cyclic=True) s1 = s.sub(5, 6) assert len(s1) == 1 s2 = s.sub(5, 12) assert len(s2) == 7
def test_subregion(): s = Span(5000, 13000, 9000, cyclic=True) s1 = s.sub(5000, 4000) s2 = s.sub(5000, 4000 + 9000) assert s1.a == 5000 assert s1.b == 4000 assert s1.c == 4000 assert s2.a == 5000 assert s2.b == 4000 assert s2.c == 13000
def test_valid_sub4(self, x, delta): s = Span(x[0], x[1], x[2], cyclic=True) start = s.a + delta[0] end = s.b - delta[1] s2 = s.sub(start, end) assert s2.a == start assert s2.b == end
def test_full_wrap_sub_region(self): s = Span(0, 1000, 1000, cyclic=True) assert s.contains_pos(1) s2 = s.sub(500, 600) assert s2.a == 500 assert s2.b == 600
def test_invalid_span_over_regions(self, x, delta): s = Span(x[0], x[1], x[2], cyclic=True) start = s.a + delta[0] end = s.b - delta[1] with pytest.raises(IndexError): s.sub(start, end)
def test_invalid_span2(self): s = Span(5000, 4999, 10000, cyclic=True, ignore_wrap=False) with pytest.raises(IndexError): s.sub(4998, 5001)
def test_invalid_span(self): s = Span(5947, 4219, 10000, cyclic=True, ignore_wrap=False) with pytest.raises(IndexError): s.sub(28, 5980)
def test_invalid_subs_over_origin(self, x): s = Span(900, 100, 1000, True) with pytest.raises(IndexError): s.sub(x[0], x[1])
def test_valid_subs_over_origin(self, x): s = Span(900, 100, 1000, True) s2 = s.sub(x[0], x[1]) assert s2.a == x[0] assert s2.b == x[1]
def test_invalid_ranges(self, x): s = Span(100, 1000, 10000, cyclic=True) with pytest.raises(IndexError): s.sub(x[0], x[1])
def test_invalid_sub_same_indices(self, x, cyclic): s = Span(1432, 4779, 4799, cyclic=cyclic) with pytest.raises(IndexError): s.sub(x, x)
def test_valid_sub_same_indices(self, x, cyclic): s = Span(1432, 4779, 4799, cyclic=cyclic) s2 = s.sub(x, x) assert len(s2) == 0 assert s2.a == x assert s2.b == x
def test_valid_sub3(self, x): s = Span(0, 9000, 10000, cyclic=True) s2 = s.sub(x[0], x[1]) assert s2.a == x[0] assert s2.b == x[1]