|
from dlib import range, ranges, rangess |
|
try: |
|
import cPickle as pickle |
|
except ImportError: |
|
import pickle |
|
from pytest import raises |
|
|
|
|
|
def test_range(): |
|
r = range(0, 10) |
|
assert r.begin == 0 |
|
assert r.end == 10 |
|
assert str(r) == "0, 10" |
|
assert repr(r) == "dlib.range(0, 10)" |
|
assert len(r) == 10 |
|
|
|
ser = pickle.dumps(r, 2) |
|
deser = pickle.loads(ser) |
|
|
|
for a, b in zip(r, deser): |
|
assert a == b |
|
|
|
|
|
|
|
def test_range_wrong_order(): |
|
r = range(5, 0) |
|
assert r.begin == 5 |
|
assert r.end == 0 |
|
assert str(r) == "5, 0" |
|
assert repr(r) == "dlib.range(5, 0)" |
|
assert len(r) == 0 |
|
|
|
|
|
def test_range_with_negative_elements(): |
|
with raises(TypeError): |
|
range(-1, 1) |
|
with raises(TypeError): |
|
range(1, -1) |
|
|
|
|
|
def test_ranges(): |
|
rs = ranges() |
|
assert len(rs) == 0 |
|
|
|
rs.resize(5) |
|
assert len(rs) == 5 |
|
for r in rs: |
|
assert r.begin == 0 |
|
assert r.end == 0 |
|
|
|
rs.clear() |
|
assert len(rs) == 0 |
|
|
|
rs.extend([range(1, 2), range(3, 4)]) |
|
assert rs[0].begin == 1 |
|
assert rs[0].end == 2 |
|
assert rs[1].begin == 3 |
|
assert rs[1].end == 4 |
|
|
|
ser = pickle.dumps(rs, 2) |
|
deser = pickle.loads(ser) |
|
assert rs == deser |
|
|
|
|
|
def test_rangess(): |
|
rss = rangess() |
|
assert len(rss) == 0 |
|
|
|
rss.resize(5) |
|
assert len(rss) == 5 |
|
for rs in rss: |
|
assert len(rs) == 0 |
|
|
|
rss.clear() |
|
assert len(rss) == 0 |
|
|
|
rs1 = ranges() |
|
rs1.append(range(1, 2)) |
|
rs1.append(range(3, 4)) |
|
|
|
rs2 = ranges() |
|
rs2.append(range(5, 6)) |
|
rs2.append(range(7, 8)) |
|
|
|
rss.extend([rs1, rs2]) |
|
assert rss[0][0].begin == 1 |
|
assert rss[0][1].begin == 3 |
|
assert rss[1][0].begin == 5 |
|
assert rss[1][1].begin == 7 |
|
assert rss[0][0].end == 2 |
|
assert rss[0][1].end == 4 |
|
assert rss[1][0].end == 6 |
|
assert rss[1][1].end == 8 |
|
|
|
ser = pickle.dumps(rss, 2) |
|
deser = pickle.loads(ser) |
|
assert rss == deser |
|
|