cython
1def test1():
2"""
3>>> test1()
42
5"""
6cdef int[2][2] x
7x[0][0] = 1
8x[0][1] = 2
9x[1][0] = 3
10x[1][1] = 4
11return f(x)[1]
12
13cdef int* f(int x[2][2]):
14return x[0]
15
16
17def assign_index_in_loop():
18"""
19>>> assign_index_in_loop()
202
21"""
22cdef int i = 0
23cdef int[1] a
24cdef int[1] b
25for a[0], b[0] in enumerate(range(3)):
26assert a[0] == b[0]
27assert a[0] == i
28i += 1
29
30assert a[0] == b[0]
31return b[0]
32
33
34def test2():
35"""
36>>> test2()
370
38"""
39cdef int[5] a1
40cdef int a2[2+3]
41return sizeof(a1) - sizeof(a2)
42
43cdef enum:
44MY_SIZE_A = 2
45MY_SIZE_B = 3
46
47def test3():
48"""
49>>> test3()
50(2, 3)
51"""
52cdef int a[MY_SIZE_A]
53cdef int b[MY_SIZE_B]
54return sizeof(a)/sizeof(int), sizeof(b)/sizeof(int)
55
56
57from libc cimport limits
58
59def test_cimported_attribute():
60"""
61>>> test_cimported_attribute()
62True
63"""
64cdef char a[limits.CHAR_MAX]
65return sizeof(a) >= 127
66