cython-devel

annotate tests/run/arrayassign.pyx @ 4256:b816b03ff502

Make __new__ -> __cinit__ into an error, fix compiler crash.
author Robert Bradshaw <robertwb@math.washington.edu>
date Tue Dec 21 02:09:22 2010 -0800 (17 months ago)
parents 41d2107a2074
children

rev   line source
scoder@1326 1 # this doesn't work - it would reassign the array address!
scoder@1326 2 #
scoder@1326 3 #def test_literal_list():
scoder@1326 4 # cdef int a[5]
scoder@1326 5 # a = [1,2,3,4,5]
scoder@1326 6 # return (a[0], a[1], a[2], a[3], a[4])
scoder@1326 7
scoder@1326 8 def test_literal_list_slice_all():
robertwb@2632 9 """
robertwb@2632 10 >>> test_literal_list_slice_all()
robertwb@2632 11 (1, 2, 3, 4, 5)
robertwb@2632 12 """
scoder@1326 13 cdef int a[5] # = [5,4,3,2,1]
scoder@1326 14 a[:] = [1,2,3,4,5]
scoder@1326 15 return (a[0], a[1], a[2], a[3], a[4])
scoder@1326 16
scoder@1326 17 def test_literal_list_slice_start():
robertwb@2632 18 """
robertwb@2632 19 >>> test_literal_list_slice_start()
robertwb@2632 20 (1, 2, 3, 4, 5)
robertwb@2632 21 """
scoder@1326 22 cdef int a[7] # = [7,6,5,4,3,2,1]
scoder@1326 23 a[2:] = [1,2,3,4,5]
scoder@1326 24 return (a[2], a[3], a[4], a[5], a[6])
scoder@1326 25
scoder@1326 26 def test_literal_list_slice_end():
robertwb@2632 27 """
robertwb@2632 28 >>> test_literal_list_slice_end()
robertwb@2632 29 (1, 2, 3, 4, 5)
robertwb@2632 30 """
scoder@1326 31 cdef int a[7] # = [7,6,5,4,3,2,1]
scoder@1326 32 a[:5] = [1,2,3,4,5]
scoder@1326 33 return (a[0], a[1], a[2], a[3], a[4])
scoder@1326 34
scoder@1326 35 def test_literal_list_slice_start_end():
robertwb@2632 36 """
robertwb@2632 37 >>> test_literal_list_slice_start_end()
robertwb@2632 38 (1, 2, 3, 4, 5)
robertwb@2632 39 """
scoder@1326 40 cdef int a[9] # = [9,8,7,6,5,4,3,2,1]
scoder@1326 41 a[2:7] = [1,2,3,4,5]
scoder@1326 42 return (a[2], a[3], a[4], a[5], a[6])
scoder@1326 43
scoder@1326 44 def test_literal_list_slice_start_param(s):
robertwb@2632 45 """
robertwb@2632 46 >>> test_literal_list_slice_start_param(4)
robertwb@2632 47 (1, 2, 3, 4, 5)
robertwb@2632 48 >>> test_literal_list_slice_start_param(3)
robertwb@2632 49 Traceback (most recent call last):
robertwb@2632 50 ValueError: Assignment to slice of wrong length, expected 5, got 6
robertwb@2632 51 >>> test_literal_list_slice_start_param(5)
robertwb@2632 52 Traceback (most recent call last):
robertwb@2632 53 ValueError: Assignment to slice of wrong length, expected 5, got 4
robertwb@2632 54 """
scoder@1326 55 cdef int a[9] # = [9,8,7,6,5,4,3,2,1]
scoder@1326 56 a[s:] = [1,2,3,4,5]
scoder@1334 57 return (a[4], a[5], a[6], a[7], a[8])
scoder@1326 58 # return a[s:]
scoder@1326 59
scoder@1326 60 def test_literal_list_slice_end_param(e):
robertwb@2632 61 """
robertwb@2632 62 >>> test_literal_list_slice_end_param(5)
robertwb@2632 63 (1, 2, 3, 4, 5)
robertwb@2632 64 >>> test_literal_list_slice_end_param(4)
robertwb@2632 65 Traceback (most recent call last):
robertwb@2632 66 ValueError: Assignment to slice of wrong length, expected 5, got 4
robertwb@2632 67 >>> test_literal_list_slice_end_param(6)
robertwb@2632 68 Traceback (most recent call last):
robertwb@2632 69 ValueError: Assignment to slice of wrong length, expected 5, got 6
robertwb@2632 70 """
scoder@1326 71 cdef int a[9] # = [9,8,7,6,5,4,3,2,1]
scoder@1326 72 a[:e] = [1,2,3,4,5]
scoder@1326 73 return (a[0], a[1], a[2], a[3], a[4])
scoder@1326 74 # return a[:e]
scoder@1326 75
scoder@1326 76 def test_literal_list_slice_start_end_param(s,e):
robertwb@2632 77 """
robertwb@2632 78 >>> test_literal_list_slice_start_end_param(2,7)
robertwb@2632 79 (1, 2, 3, 4, 5)
robertwb@2632 80 >>> test_literal_list_slice_start_end_param(3,7)
robertwb@2632 81 Traceback (most recent call last):
robertwb@2632 82 ValueError: Assignment to slice of wrong length, expected 5, got 4
robertwb@2632 83 >>> test_literal_list_slice_start_end_param(1,7)
robertwb@2632 84 Traceback (most recent call last):
robertwb@2632 85 ValueError: Assignment to slice of wrong length, expected 5, got 6
robertwb@2632 86 >>> test_literal_list_slice_start_end_param(2,6)
robertwb@2632 87 Traceback (most recent call last):
robertwb@2632 88 ValueError: Assignment to slice of wrong length, expected 5, got 4
robertwb@2632 89 >>> test_literal_list_slice_start_end_param(2,8)
robertwb@2632 90 Traceback (most recent call last):
robertwb@2632 91 ValueError: Assignment to slice of wrong length, expected 5, got 6
robertwb@2632 92 >>> test_literal_list_slice_start_end_param(3,6)
robertwb@2632 93 Traceback (most recent call last):
robertwb@2632 94 ValueError: Assignment to slice of wrong length, expected 5, got 3
robertwb@2632 95 >>> test_literal_list_slice_start_end_param(1,8)
robertwb@2632 96 Traceback (most recent call last):
robertwb@2632 97 ValueError: Assignment to slice of wrong length, expected 5, got 7
robertwb@2632 98 """
scoder@1326 99 cdef int a[9] # = [9,8,7,6,5,4,3,2,1]
scoder@1326 100 a[s:e] = [1,2,3,4,5]
scoder@1326 101 return (a[2], a[3], a[4], a[5], a[6])
scoder@1326 102 # return a[s:e]
scoder@1326 103
scoder@1326 104 def test_ptr_literal_list_slice_all():
robertwb@2632 105 """
robertwb@2632 106 >>> test_ptr_literal_list_slice_all()
robertwb@2632 107 (1, 2, 3, 4, 5)
robertwb@2632 108 """
scoder@1326 109 cdef int *a = [6,5,4,3,2]
scoder@1326 110 a[:] = [1,2,3,4,5]
scoder@1326 111 return (a[0], a[1], a[2], a[3], a[4])
scoder@1326 112
scoder@1326 113 def test_ptr_literal_list_slice_start():
robertwb@2632 114 """
robertwb@2632 115 >>> test_ptr_literal_list_slice_start()
robertwb@2632 116 (1, 2, 3, 4, 5)
robertwb@2632 117 """
scoder@1326 118 cdef int *a = [6,5,4,3,2,1]
scoder@1326 119 a[1:] = [1,2,3,4,5]
scoder@1326 120 return (a[1], a[2], a[3], a[4], a[5])
scoder@1326 121
scoder@1326 122 def test_ptr_literal_list_slice_end():
robertwb@2632 123 """
robertwb@2632 124 >>> test_ptr_literal_list_slice_end()
robertwb@2632 125 (1, 2, 3, 4, 5)
robertwb@2632 126 """
scoder@1326 127 cdef int *a = [6,5,4,3,2,1]
scoder@1326 128 a[:5] = [1,2,3,4,5]
scoder@1326 129 return (a[0], a[1], a[2], a[3], a[4])
scoder@1326 130
scoder@1326 131 # tuples aren't supported (yet)
scoder@1326 132 #
scoder@1326 133 #def test_literal_tuple():
scoder@1326 134 # cdef int a[5]
scoder@1326 135 # a = (1,2,3,4,5)
scoder@1326 136 # return (a[0], a[1], a[2], a[3], a[4])
scoder@1326 137
scoder@1326 138 # this would be nice to have:
scoder@1326 139 #
scoder@1326 140 #def test_list(list l):
scoder@1326 141 # cdef int a[5]
scoder@1326 142 # a[:] = l
scoder@1326 143 # return (a[0], a[1], a[2], a[3], a[4])