|
Packit |
562c7a |
# mode: run
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
cimport cython
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def test_literal_list():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> test_literal_list()
|
|
Packit |
562c7a |
(1, 2, 3, 4, 5)
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int a[5]
|
|
Packit |
562c7a |
a = [1,2,3,4,5]
|
|
Packit |
562c7a |
return (a[0], a[1], a[2], a[3], a[4])
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def test_literal_list_multiplied():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> test_literal_list_multiplied()
|
|
Packit |
562c7a |
(1, 2, 1, 2, 1, 2)
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int a[6]
|
|
Packit |
562c7a |
a = [1,2] * 3
|
|
Packit |
562c7a |
return (a[0], a[1], a[2], a[3], a[4], a[5])
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def test_literal_list_slice_all():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> test_literal_list_slice_all()
|
|
Packit |
562c7a |
(1, 2, 3, 4, 5)
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int a[5] # = [5,4,3,2,1]
|
|
Packit |
562c7a |
a[:] = [1,2,3,4,5]
|
|
Packit |
562c7a |
return (a[0], a[1], a[2], a[3], a[4])
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def test_literal_list_slice_start():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> test_literal_list_slice_start()
|
|
Packit |
562c7a |
(1, 2, 3, 4, 5)
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int a[7] # = [7,6,5,4,3,2,1]
|
|
Packit |
562c7a |
a[2:] = [1,2,3,4,5]
|
|
Packit |
562c7a |
return (a[2], a[3], a[4], a[5], a[6])
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def test_literal_list_slice_end():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> test_literal_list_slice_end()
|
|
Packit |
562c7a |
(1, 2, 3, 4, 5)
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int a[7] # = [7,6,5,4,3,2,1]
|
|
Packit |
562c7a |
a[:5] = [1,2,3,4,5]
|
|
Packit |
562c7a |
return (a[0], a[1], a[2], a[3], a[4])
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def test_literal_list_slice_start_end():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> test_literal_list_slice_start_end()
|
|
Packit |
562c7a |
(1, 2, 3, 4, 5)
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int a[9] # = [9,8,7,6,5,4,3,2,1]
|
|
Packit |
562c7a |
a[2:7] = [1,2,3,4,5]
|
|
Packit |
562c7a |
return (a[2], a[3], a[4], a[5], a[6])
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def test_literal_list_slice_start_param(s):
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> test_literal_list_slice_start_param(4)
|
|
Packit |
562c7a |
(1, 2, 3, 4, 5)
|
|
Packit |
562c7a |
>>> test_literal_list_slice_start_param(3)
|
|
Packit |
562c7a |
Traceback (most recent call last):
|
|
Packit |
562c7a |
ValueError: Assignment to slice of wrong length, expected 5, got 6
|
|
Packit |
562c7a |
>>> test_literal_list_slice_start_param(5)
|
|
Packit |
562c7a |
Traceback (most recent call last):
|
|
Packit |
562c7a |
ValueError: Assignment to slice of wrong length, expected 5, got 4
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int a[9] # = [9,8,7,6,5,4,3,2,1]
|
|
Packit |
562c7a |
a[s:] = [1,2,3,4,5]
|
|
Packit |
562c7a |
return (a[4], a[5], a[6], a[7], a[8])
|
|
Packit |
562c7a |
# return a[s:]
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def test_literal_list_slice_end_param(e):
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> test_literal_list_slice_end_param(5)
|
|
Packit |
562c7a |
(1, 2, 3, 4, 5)
|
|
Packit |
562c7a |
>>> test_literal_list_slice_end_param(4)
|
|
Packit |
562c7a |
Traceback (most recent call last):
|
|
Packit |
562c7a |
ValueError: Assignment to slice of wrong length, expected 5, got 4
|
|
Packit |
562c7a |
>>> test_literal_list_slice_end_param(6)
|
|
Packit |
562c7a |
Traceback (most recent call last):
|
|
Packit |
562c7a |
ValueError: Assignment to slice of wrong length, expected 5, got 6
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int a[9] # = [9,8,7,6,5,4,3,2,1]
|
|
Packit |
562c7a |
a[:e] = [1,2,3,4,5]
|
|
Packit |
562c7a |
return (a[0], a[1], a[2], a[3], a[4])
|
|
Packit |
562c7a |
# return a[:e]
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def test_literal_list_slice_start_end_param(s,e):
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> test_literal_list_slice_start_end_param(2,7)
|
|
Packit |
562c7a |
(1, 2, 3, 4, 5)
|
|
Packit |
562c7a |
>>> test_literal_list_slice_start_end_param(3,7)
|
|
Packit |
562c7a |
Traceback (most recent call last):
|
|
Packit |
562c7a |
ValueError: Assignment to slice of wrong length, expected 5, got 4
|
|
Packit |
562c7a |
>>> test_literal_list_slice_start_end_param(1,7)
|
|
Packit |
562c7a |
Traceback (most recent call last):
|
|
Packit |
562c7a |
ValueError: Assignment to slice of wrong length, expected 5, got 6
|
|
Packit |
562c7a |
>>> test_literal_list_slice_start_end_param(2,6)
|
|
Packit |
562c7a |
Traceback (most recent call last):
|
|
Packit |
562c7a |
ValueError: Assignment to slice of wrong length, expected 5, got 4
|
|
Packit |
562c7a |
>>> test_literal_list_slice_start_end_param(2,8)
|
|
Packit |
562c7a |
Traceback (most recent call last):
|
|
Packit |
562c7a |
ValueError: Assignment to slice of wrong length, expected 5, got 6
|
|
Packit |
562c7a |
>>> test_literal_list_slice_start_end_param(3,6)
|
|
Packit |
562c7a |
Traceback (most recent call last):
|
|
Packit |
562c7a |
ValueError: Assignment to slice of wrong length, expected 5, got 3
|
|
Packit |
562c7a |
>>> test_literal_list_slice_start_end_param(1,8)
|
|
Packit |
562c7a |
Traceback (most recent call last):
|
|
Packit |
562c7a |
ValueError: Assignment to slice of wrong length, expected 5, got 7
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int a[9] # = [9,8,7,6,5,4,3,2,1]
|
|
Packit |
562c7a |
a[s:e] = [1,2,3,4,5]
|
|
Packit |
562c7a |
return (a[2], a[3], a[4], a[5], a[6])
|
|
Packit |
562c7a |
# return a[s:e]
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def test_ptr_literal_list_slice_all():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> test_ptr_literal_list_slice_all()
|
|
Packit |
562c7a |
(1, 2, 3, 4, 5)
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int *a = [6,5,4,3,2]
|
|
Packit |
562c7a |
a[:] = [1,2,3,4,5]
|
|
Packit |
562c7a |
return (a[0], a[1], a[2], a[3], a[4])
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def test_ptr_literal_list_slice_start():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> test_ptr_literal_list_slice_start()
|
|
Packit |
562c7a |
(1, 2, 3, 4, 5)
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int *a = [6,5,4,3,2,1]
|
|
Packit |
562c7a |
a[1:] = [1,2,3,4,5]
|
|
Packit |
562c7a |
return (a[1], a[2], a[3], a[4], a[5])
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def test_ptr_literal_list_slice_end():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> test_ptr_literal_list_slice_end()
|
|
Packit |
562c7a |
(1, 2, 3, 4, 5)
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int *a = [6,5,4,3,2,1]
|
|
Packit |
562c7a |
a[:5] = [1,2,3,4,5]
|
|
Packit |
562c7a |
return (a[0], a[1], a[2], a[3], a[4])
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
@cython.test_assert_path_exists(
|
|
Packit |
562c7a |
'//ReturnStatNode//CoerceToPyTypeNode'
|
|
Packit |
562c7a |
)
|
|
Packit |
562c7a |
def test_starred_from_array():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> test_starred_from_array()
|
|
Packit |
562c7a |
(1, [2, 3, 4], 5)
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int[5] a
|
|
Packit |
562c7a |
a[0] = 1
|
|
Packit |
562c7a |
a[1] = 2
|
|
Packit |
562c7a |
a[2] = 3
|
|
Packit |
562c7a |
a[3] = 4
|
|
Packit |
562c7a |
a[4] = 5
|
|
Packit |
562c7a |
x, *y, z = a
|
|
Packit |
562c7a |
return x, y, z
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
@cython.test_fail_if_path_exists(
|
|
Packit |
562c7a |
'//ParallelAssignmentNode//CoerceToPyTypeNode',
|
|
Packit |
562c7a |
'//ParallelAssignmentNode//CoerceFromPyTypeNode',
|
|
Packit |
562c7a |
)
|
|
Packit |
562c7a |
@cython.test_assert_path_exists(
|
|
Packit |
562c7a |
'//ParallelAssignmentNode',
|
|
Packit |
562c7a |
'//ReturnStatNode//CoerceToPyTypeNode'
|
|
Packit |
562c7a |
)
|
|
Packit |
562c7a |
def test_multiple_from_array():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> test_multiple_from_array()
|
|
Packit |
562c7a |
(1, 2, 3)
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int[3] a
|
|
Packit |
562c7a |
a[0] = 1
|
|
Packit |
562c7a |
a[1] = 2
|
|
Packit |
562c7a |
a[2] = 3
|
|
Packit |
562c7a |
x, y, z = a
|
|
Packit |
562c7a |
return x, y, z
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
@cython.test_fail_if_path_exists(
|
|
Packit |
562c7a |
'//ParallelAssignmentNode//CoerceToPyTypeNode'
|
|
Packit |
562c7a |
)
|
|
Packit |
562c7a |
@cython.test_assert_path_exists(
|
|
Packit |
562c7a |
'//ParallelAssignmentNode',
|
|
Packit |
562c7a |
'//ReturnStatNode//CoerceToPyTypeNode'
|
|
Packit |
562c7a |
)
|
|
Packit |
562c7a |
def test_multiple_from_array_full_slice():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> test_multiple_from_array_full_slice()
|
|
Packit |
562c7a |
(1, 2, 3)
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int[3] a
|
|
Packit |
562c7a |
a[0] = 1
|
|
Packit |
562c7a |
a[1] = 2
|
|
Packit |
562c7a |
a[2] = 3
|
|
Packit |
562c7a |
x, y, z = a[:]
|
|
Packit |
562c7a |
return x, y, z
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
@cython.test_fail_if_path_exists(
|
|
Packit |
562c7a |
'//ParallelAssignmentNode//CoerceToPyTypeNode'
|
|
Packit |
562c7a |
)
|
|
Packit |
562c7a |
@cython.test_assert_path_exists(
|
|
Packit |
562c7a |
'//ParallelAssignmentNode',
|
|
Packit |
562c7a |
'//ReturnStatNode//CoerceToPyTypeNode'
|
|
Packit |
562c7a |
)
|
|
Packit |
562c7a |
def test_multiple_from_slice():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> test_multiple_from_slice()
|
|
Packit |
562c7a |
(5, 4, 3)
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int *a = [6,5,4,3,2,1]
|
|
Packit |
562c7a |
x, y, z = a[1:4]
|
|
Packit |
562c7a |
return x, y, z
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def test_slice_from_multiple():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> test_slice_from_multiple()
|
|
Packit |
562c7a |
(6, -1, -2, -3, 2, 1)
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int *a = [6,5,4,3,2,1]
|
|
Packit |
562c7a |
a[1:4] = -1, -2, -3
|
|
Packit |
562c7a |
return a[0], a[1], a[2], a[3], a[4], a[5]
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def test_literal_tuple():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> test_literal_tuple()
|
|
Packit |
562c7a |
(1, 2, 3, 4, 5)
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int a[5]
|
|
Packit |
562c7a |
a = (1,2,3,4,5)
|
|
Packit |
562c7a |
return (a[0], a[1], a[2], a[3], a[4])
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def test_list(list l):
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> test_list([1, 2, 3, 4, 5])
|
|
Packit |
562c7a |
(1, 2, 3, 4, 5)
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int a[5]
|
|
Packit |
562c7a |
a[:] = l
|
|
Packit |
562c7a |
return (a[0], a[1], a[2], a[3], a[4])
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def assign_all_from_pointer():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> assign_all_from_pointer()
|
|
Packit |
562c7a |
(1, 2, 3, 4, 5)
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int *v = [1, 2, 3, 4, 5]
|
|
Packit |
562c7a |
cdef int[5] a
|
|
Packit |
562c7a |
a = v
|
|
Packit |
562c7a |
return (a[0], a[1], a[2], a[3], a[4])
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def assign_full_from_pointer():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> assign_full_from_pointer()
|
|
Packit |
562c7a |
(1, 2, 3, 4, 5)
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int *v = [1, 2, 3, 4, 5]
|
|
Packit |
562c7a |
cdef int[5] a
|
|
Packit |
562c7a |
a[:] = v
|
|
Packit |
562c7a |
return (a[0], a[1], a[2], a[3], a[4])
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def assign_slice_end_from_pointer():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> assign_slice_end_from_pointer()
|
|
Packit |
562c7a |
(1, 2, 3, 4, 123)
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int *v = [1, 2, 3, 4, 5]
|
|
Packit |
562c7a |
cdef int[5] a
|
|
Packit |
562c7a |
a[4] = 123
|
|
Packit |
562c7a |
a[:4] = v
|
|
Packit |
562c7a |
return (a[0], a[1], a[2], a[3], a[4])
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def assign_slice_start_from_pointer():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> assign_slice_start_from_pointer()
|
|
Packit |
562c7a |
(123, 234, 1, 2, 3)
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int *v = [1, 2, 3, 4, 5]
|
|
Packit |
562c7a |
cdef int[5] a
|
|
Packit |
562c7a |
a[0] = 123
|
|
Packit |
562c7a |
a[1] = 234
|
|
Packit |
562c7a |
a[2:] = v
|
|
Packit |
562c7a |
return (a[0], a[1], a[2], a[3], a[4])
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def assign_slice_start_end_from_pointer():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> assign_slice_start_end_from_pointer()
|
|
Packit |
562c7a |
(123, 234, 1, 2, 345)
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int *v = [1, 2, 3, 4, 5]
|
|
Packit |
562c7a |
cdef int[5] a
|
|
Packit |
562c7a |
a[0] = 123
|
|
Packit |
562c7a |
a[1] = 234
|
|
Packit |
562c7a |
a[4] = 345
|
|
Packit |
562c7a |
a[2:4] = v
|
|
Packit |
562c7a |
return (a[0], a[1], a[2], a[3], a[4])
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
'''
|
|
Packit |
562c7a |
# FIXME: make this work:
|
|
Packit |
562c7a |
def assign_slice_start_end_from_sliced_pointer():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> assign_slice_start_end_from_sliced_pointer()
|
|
Packit |
562c7a |
(123, 234, 3, 4, 345)
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int *v = [1, 2, 3, 4, 5]
|
|
Packit |
562c7a |
cdef int[5] a
|
|
Packit |
562c7a |
a[0] = 123
|
|
Packit |
562c7a |
a[1] = 234
|
|
Packit |
562c7a |
a[4] = 345
|
|
Packit |
562c7a |
a[2:4] = v[2:4]
|
|
Packit |
562c7a |
return (a[0], a[1], a[2], a[3], a[4])
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def assign_from_longer_array_slice():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> assign_from_longer_array_slice()
|
|
Packit |
562c7a |
[3, 4, 5]
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int[5] a
|
|
Packit |
562c7a |
cdef int[3] b
|
|
Packit |
562c7a |
a[0] = 1
|
|
Packit |
562c7a |
a[1] = 2
|
|
Packit |
562c7a |
a[2] = 3
|
|
Packit |
562c7a |
a[3] = 4
|
|
Packit |
562c7a |
a[4] = 5
|
|
Packit |
562c7a |
b[0] = 11
|
|
Packit |
562c7a |
b[1] = 12
|
|
Packit |
562c7a |
b[2] = 13
|
|
Packit |
562c7a |
b = a[2:]
|
|
Packit |
562c7a |
return b
|
|
Packit |
562c7a |
'''
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def assign_slice_from_shorter_array():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> assign_slice_from_shorter_array()
|
|
Packit |
562c7a |
[1, 11, 12, 13, 5]
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int[5] a
|
|
Packit |
562c7a |
cdef int[3] b
|
|
Packit |
562c7a |
a[0] = 1
|
|
Packit |
562c7a |
a[1] = 2
|
|
Packit |
562c7a |
a[2] = 3
|
|
Packit |
562c7a |
a[3] = 4
|
|
Packit |
562c7a |
a[4] = 5
|
|
Packit |
562c7a |
b[0] = 11
|
|
Packit |
562c7a |
b[1] = 12
|
|
Packit |
562c7a |
b[2] = 13
|
|
Packit |
562c7a |
a[1:4] = b
|
|
Packit |
562c7a |
return a
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
cdef enum:
|
|
Packit |
562c7a |
SIZE = 2
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
ctypedef int[SIZE] int_array_dyn
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def assign_ptr_to_unknown_csize():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> assign_ptr_to_unknown_csize()
|
|
Packit |
562c7a |
[1, 2]
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int* v = [1, 2, 3, 4, 5]
|
|
Packit |
562c7a |
cdef int_array_dyn d
|
|
Packit |
562c7a |
d = v
|
|
Packit |
562c7a |
return d
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def assign_to_wrong_csize():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> assign_to_wrong_csize()
|
|
Packit |
562c7a |
Traceback (most recent call last):
|
|
Packit |
562c7a |
ValueError: Assignment to slice of wrong length, expected 3, got 2
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int_array_dyn d
|
|
Packit |
562c7a |
cdef int v[3]
|
|
Packit |
562c7a |
v[0] = 1
|
|
Packit |
562c7a |
v[1] = 2
|
|
Packit |
562c7a |
v[2] = 3
|
|
Packit |
562c7a |
d = v
|
|
Packit |
562c7a |
return d
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def assign_full_array_slice_to_array():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> assign_full_array_slice_to_array()
|
|
Packit |
562c7a |
[1, 2, 3]
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int[3] x, y
|
|
Packit |
562c7a |
x[0] = 1
|
|
Packit |
562c7a |
x[1] = 2
|
|
Packit |
562c7a |
x[2] = 3
|
|
Packit |
562c7a |
y = x[:]
|
|
Packit |
562c7a |
return y
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
cdef class ArrayOwner:
|
|
Packit |
562c7a |
cdef readonly int[3] array
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def __init__(self, a, b, c):
|
|
Packit |
562c7a |
self.array = (a, b, c)
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def assign_from_array_attribute():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> assign_from_array_attribute()
|
|
Packit |
562c7a |
[1, 2, 3]
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int[3] v
|
|
Packit |
562c7a |
a = ArrayOwner(1, 2, 3)
|
|
Packit |
562c7a |
v = a.array[:]
|
|
Packit |
562c7a |
return v
|