| 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])
|