summaryrefslogtreecommitdiff
path: root/Examples/test-suite/python/std_containers_runme.py
blob: 7404cd5f433a46116be10e0586e7b74f55e2ec5a (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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
import sys
import std_containers


cube = (((1, 2), (3, 4)), ((5, 6), (7, 8)))

icube = std_containers.cident(cube)
for i in range(0, len(cube)):
    if cube[i] != icube[i]:
        raise RuntimeError, "bad cident"


p = (1, 2)
if p != std_containers.pident(p):
    raise RuntimeError, "bad pident"

v = (1, 2, 3, 4, 5, 6)
iv = std_containers.vident(v)
for i in range(0, len(v)):
    if v[i] != iv[i]:
        raise RuntimeError, "bad vident"


iv = std_containers.videntu(v)
for i in range(0, len(v)):
    if v[i] != iv[i]:
        raise RuntimeError, "bad videntu"


vu = std_containers.vector_ui(v)
if vu[2] != std_containers.videntu(vu)[2]:
    raise RuntimeError, "bad videntu"


if v[0:3][1] != vu[0:3][1]:
    print v[0:3][1], vu[0:3][1]
    raise RuntimeError, "bad getslice"


m = ((1, 2, 3), (2, 3), (3, 4))
im = std_containers.midenti(m)

for i in range(0, len(m)):
    for j in range(0, len(m[i])):
        if m[i][j] != im[i][j]:
            raise RuntimeError, "bad getslice"

m = ((True, False, True), (True, True), (True, True))
im = std_containers.midentb(m)
for i in range(0, len(m)):
    for j in range(0, len(m[i])):
        if m[i][j] != im[i][j]:
            raise RuntimeError, "bad getslice"


mi = std_containers.imatrix(m)
mc = std_containers.cmatrix(m)
if mi[0][1] != mc[0][1]:
    raise RuntimeError, "bad matrix"


map = {}
map["hello"] = 1
map["hi"] = 2
map["3"] = 2

imap = std_containers.mapident(map)
for k in map:
    if map[k] != imap[k]:
        raise RuntimeError, "bad map"

# Test __contains__ (required for 'x in y' to work)
if not imap.__contains__("hello"):
    raise RuntimeError("hello imap.__contains__")
if "hello" not in imap:
    raise RuntimeError("hello not in imap")
if imap.__contains__("oops"):
    raise RuntimeError("oops imap.__contains__")
if "oops" in imap:
    raise RuntimeError("oops in imap")

mapc = {}
c1 = std_containers.C()
c2 = std_containers.C()
mapc[1] = c1.this
mapc[2] = c2

std_containers.mapidentc(mapc)


vi = std_containers.vector_i((2, 2, 3, 4))


v = (1, 2)
v1 = std_containers.v_inout(vi)
vi[1], v1[1]

v1, v2 = ((1, 2), (3, 4))
v1, v2 = std_containers.v_inout2(v1, v2)

a1 = std_containers.A(1)
a2 = std_containers.A(2)

p1 = (1, a1)
p2 = (2, a2)
v = (p1, p2)
v2 = std_containers.pia_vident(v)

v2[0][1].a
v2[1][1].a

v3 = std_containers.vector_piA(v2)

v3[0][1].a
v3[1][1].a

s = std_containers.set_i()
s.append(1)
s.append(2)
s.append(3)
j = 1
for i in s:
    if i != j:
        raise RuntimeError
    j = j + 1

# Test __contains__ (required for 'x in y' to work)
if not s.__contains__(3):
    raise RuntimeError("3 s.__contains__")
if 3 not in s:
    raise RuntimeError("3 not in s")
if s.__contains__(-1):
    raise RuntimeError("-1 s.__contains__")
if -1 in s:
    raise RuntimeError("-1 in s")