summaryrefslogtreecommitdiff
path: root/Examples/test-suite/python/li_std_map_runme.py
blob: f53d3f56b9e752a3c033ab429f49ac6e4dac71f8 (plain)
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
import li_std_map

a1 = li_std_map.A(3)
a2 = li_std_map.A(7)


p0 = li_std_map.pairii(1, 2)
p1 = li_std_map.pairA(1, a1.this)
m = {}
m[1] = a1
m[2] = a2

pp1 = li_std_map.p_identa(p1)
mm = li_std_map.m_identa(m)


m = li_std_map.mapA()
m[1] = a1
m[2] = a2


pm = {}
for k in m:
    pm[k] = m[k]

for k in m:
    if pm[k].this != m[k].this:
        raise RuntimeError("Not equal {} {}".format(pm[k], m[k]))


m = {}
m[1] = (1, 2)
m["foo"] = "hello"

pm = li_std_map.pymap()

for k in m:
    pm[k] = m[k]

for k in pm:
    if (pm[k] != m[k]):
        raise RuntimeError


mii = li_std_map.IntIntMap()

mii[1] = 1
mii[1] = 2

if mii[1] != 2:
    raise RuntimeError

if mii.keys() != [1]:
    raise RuntimeError("keys")
if mii.values() != [2]:
    raise RuntimeError("values")
if mii.items() != [(1, 2)]:
    raise RuntimeError("items")

if [k for k in mii] != [1]:
    raise RuntimeError("iteration")

if [i for i in mii.iterkeys()] != [1]:
    raise RuntimeError("iterkeys")
if [i for i in mii.itervalues()] != [2]:
    raise RuntimeError("itervalues")
if [i for i in mii.iteritems()] != [(1, 2)]:
    raise RuntimeError("iteritems")


slmap = li_std_map.StringLengthNumberMap()
li_std_map.populate(slmap)

keys = " ".join([k for k in slmap.keys()])
if keys != "a aa zzz xxxx aaaaa":
    raise RuntimeError("Keys are wrong or in wrong order: " + keys)

values = " ".join([str(v) for v in slmap.values()])
if values != "1 2 3 4 5":
    raise RuntimeError("Values are wrong or in wrong order: " + values)