/
test_skip_list.py
42 lines (35 loc) · 1.06 KB
/
test_skip_list.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
from nose.tools import assert_equal
import numpy as np
from skip_list import IndexableSkipList
#def test_skip_list():
if 1:
N = 5
indices = np.arange(N)**2
values = np.random.randint(1000, size=N).astype(np.float)
# Test trivial insertion
slist = IndexableSkipList()
slist.multiple_insert(indices, values)
assert_equal(list(slist.iteritems()), zip(indices, values))
assert_equal(len(slist), N)
# Test trivial insertion
for i, v in zip(indices, values):
slist[i + 1] = v - 1
assert_equal(slist[i + 1], v - 1)
l = list(slist.iteritems())
# Test removal of elements
slist.pop(l[-2][0])
l.remove(l[-2])
assert_equal(list(slist.iteritems()), l)
slist.pop(l[1][0])
l.remove(l[1])
assert_equal(list(slist.iteritems()), l)
slist.pop(l[1][0])
l.remove(l[1])
assert_equal(list(slist.iteritems()), l)
# Test random insertion of elements
l.append((3, 6.))
l.sort()
slist[3] = 6.
assert_equal(list(slist.iteritems()), l)
if __name__ == '__main__':
test_skip_list()