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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
from dlib import pair, make_sparse_vector, sparse_vector, sparse_vectors, sparse_vectorss
try:
import cPickle as pickle # Use cPickle on Python 2.7
except ImportError:
import pickle
from pytest import approx
def test_pair():
p = pair(4, .9)
assert p.first == 4
assert p.second == .9
p.first = 3
p.second = .4
assert p.first == 3
assert p.second == .4
assert str(p) == "3: 0.4"
assert repr(p) == "dlib.pair(3, 0.4)"
deser = pickle.loads(pickle.dumps(p, 2))
assert deser.first == p.first
assert deser.second == p.second
def test_sparse_vector():
sv = sparse_vector()
sv.append(pair(3, .1))
sv.append(pair(3, .2))
sv.append(pair(2, .3))
sv.append(pair(1, .4))
assert len(sv) == 4
make_sparse_vector(sv)
assert len(sv) == 3
assert sv[0].first == 1
assert sv[0].second == .4
assert sv[1].first == 2
assert sv[1].second == .3
assert sv[2].first == 3
assert sv[2].second == approx(.3)
assert str(sv) == "1: 0.4\n2: 0.3\n3: 0.3"
assert repr(sv) == "< dlib.sparse_vector containing: \n1: 0.4\n2: 0.3\n3: 0.3 >"
def test_sparse_vectors():
svs = sparse_vectors()
assert len(svs) == 0
svs.resize(5)
for sv in svs:
assert len(sv) == 0
svs.clear()
assert len(svs) == 0
svs.extend([sparse_vector([pair(1, 2), pair(3, 4)]), sparse_vector([pair(5, 6), pair(7, 8)])])
assert len(svs) == 2
assert svs[0][0].first == 1
assert svs[0][0].second == 2
assert svs[0][1].first == 3
assert svs[0][1].second == 4
assert svs[1][0].first == 5
assert svs[1][0].second == 6
assert svs[1][1].first == 7
assert svs[1][1].second == 8
deser = pickle.loads(pickle.dumps(svs, 2))
assert deser == svs
def test_sparse_vectorss():
svss = sparse_vectorss()
assert len(svss) == 0
svss.resize(5)
for svs in svss:
assert len(svs) == 0
svss.clear()
assert len(svss) == 0
svss.extend([sparse_vectors([sparse_vector([pair(1, 2), pair(3, 4)]), sparse_vector([pair(5, 6), pair(7, 8)])])])
assert len(svss) == 1
assert svss[0][0][0].first == 1
assert svss[0][0][0].second == 2
assert svss[0][0][1].first == 3
assert svss[0][0][1].second == 4
assert svss[0][1][0].first == 5
assert svss[0][1][0].second == 6
assert svss[0][1][1].first == 7
assert svss[0][1][1].second == 8
deser = pickle.loads(pickle.dumps(svss, 2))
assert deser == svss