Buffer type checking cleanup/rewrite (now uses use_utility_code)
[cython.git] / tests / run / switch.pyx
1 __doc__ = u"""
2 >>> switch_simple_py(1)
3 1
4 >>> switch_simple_py(2)
5 2
6 >>> switch_simple_py(3)
7 3
8 >>> switch_simple_py(4)
9 8
10 >>> switch_simple_py(5)
11 0
12
13 >>> switch_py(1)
14 1
15 >>> switch_py(2)
16 2
17 >>> switch_py(3)
18 3
19 >>> switch_py(4)
20 4
21 >>> switch_py(5)
22 4
23 >>> switch_py(6)
24 0
25 >>> switch_py(8)
26 4
27 >>> switch_py(10)
28 10
29 >>> switch_py(12)
30 12
31 >>> switch_py(13)
32 0
33
34 >>> switch_simple_c(1)
35 1
36 >>> switch_simple_c(2)
37 2
38 >>> switch_simple_c(3)
39 3
40 >>> switch_simple_c(4)
41 8
42 >>> switch_simple_c(5)
43 0
44
45 >>> switch_c(1)
46 1
47 >>> switch_c(2)
48 2
49 >>> switch_c(3)
50 3
51 >>> switch_c(4)
52 4
53 >>> switch_c(5)
54 4
55 >>> switch_c(6)
56 0
57 >>> switch_c(8)
58 4
59 >>> switch_c(10)
60 10
61 >>> switch_c(12)
62 12
63 >>> switch_c(13)
64 0
65 """
66
67 def switch_simple_py(x):
68     if x == 1:
69         return 1
70     elif 2 == x:
71         return 2
72     elif x in [3]:
73         return 3
74     elif x in (4,):
75         return 8
76     else:
77         return 0
78     return -1
79
80 def switch_py(x):
81     if x == 1:
82         return 1
83     elif 2 == x:
84         return 2
85     elif x in [3]:
86         return 3
87     elif x in [4,5,7,8]:
88         return 4
89     elif x in (10,11):
90         return 10
91     elif x in (12,):
92         return 12
93     else:
94         return 0
95     return -1
96
97 def switch_simple_c(int x):
98     if x == 1:
99         return 1
100     elif 2 == x:
101         return 2
102     elif x in [3]:
103         return 3
104     elif x in (4,):
105         return 8
106     else:
107         return 0
108     return -1
109
110 def switch_c(int x):
111     if x == 1:
112         return 1
113     elif 2 == x:
114         return 2
115     elif x in [3]:
116         return 3
117     elif x in [4,5,7,8]:
118         return 4
119     elif x in (10,11):
120         return 10
121     elif x in (12,):
122         return 12
123     else:
124         return 0
125     return -1