|
Packit |
562c7a |
# ticket: 467
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def simple_parallel_assignment_from_call():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> simple_parallel_assignment_from_call()
|
|
Packit |
562c7a |
(2, 1, 2, 1, 2, 1, 2, [1, 2], [1, 2])
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int ai, bi
|
|
Packit |
562c7a |
cdef long al, bl
|
|
Packit |
562c7a |
cdef object ao, bo
|
|
Packit |
562c7a |
reset()
|
|
Packit |
562c7a |
ai, bi = al, bl = ao, bo = c = d = [intval(1), intval(2)]
|
|
Packit |
562c7a |
return call_count, ao, bo, ai, bi, al, bl, c, d
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def recursive_parallel_assignment_from_call_left():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> recursive_parallel_assignment_from_call_left()
|
|
Packit |
562c7a |
(3, 1, 2, 3, 1, 2, 3, (1, 2), 3, [(1, 2), 3])
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int ai, bi, ci
|
|
Packit |
562c7a |
cdef object ao, bo, co
|
|
Packit |
562c7a |
reset()
|
|
Packit |
562c7a |
(ai, bi), ci = (ao, bo), co = t,o = d = [(intval(1), intval(2)), intval(3)]
|
|
Packit |
562c7a |
return call_count, ao, bo, co, ai, bi, ci, t, o, d
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def recursive_parallel_assignment_from_call_right():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> recursive_parallel_assignment_from_call_right()
|
|
Packit |
562c7a |
(3, 1, 2, 3, 1, 2, 3, 1, (2, 3), [1, (2, 3)])
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int ai, bi, ci
|
|
Packit |
562c7a |
cdef object ao, bo, co
|
|
Packit |
562c7a |
reset()
|
|
Packit |
562c7a |
ai, (bi, ci) = ao, (bo, co) = o,t = d = [intval(1), (intval(2), intval(3))]
|
|
Packit |
562c7a |
return call_count, ao, bo, co, ai, bi, ci, o, t, d
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def recursive_parallel_assignment_from_call_left_reversed():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> recursive_parallel_assignment_from_call_left_reversed()
|
|
Packit |
562c7a |
(3, 1, 2, 3, 1, 2, 3, (1, 2), 3, [(1, 2), 3])
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int ai, bi, ci
|
|
Packit |
562c7a |
cdef object ao, bo, co
|
|
Packit |
562c7a |
reset()
|
|
Packit |
562c7a |
d = t,o = (ao, bo), co = (ai, bi), ci = [(intval(1), intval(2)), intval(3)]
|
|
Packit |
562c7a |
return call_count, ao, bo, co, ai, bi, ci, t, o, d
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def recursive_parallel_assignment_from_call_right_reversed():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> recursive_parallel_assignment_from_call_right_reversed()
|
|
Packit |
562c7a |
(3, 1, 2, 3, 1, 2, 3, 1, (2, 3), [1, (2, 3)])
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int ai, bi, ci
|
|
Packit |
562c7a |
cdef object ao, bo, co
|
|
Packit |
562c7a |
reset()
|
|
Packit |
562c7a |
d = o,t = ao, (bo, co) = ai, (bi, ci) = [intval(1), (intval(2), intval(3))]
|
|
Packit |
562c7a |
return call_count, ao, bo, co, ai, bi, ci, o, t, d
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
cdef int call_count = 0
|
|
Packit |
562c7a |
cdef int next_expected_arg = 1
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
cdef reset():
|
|
Packit |
562c7a |
global call_count, next_expected_arg
|
|
Packit |
562c7a |
call_count = 0
|
|
Packit |
562c7a |
next_expected_arg = 1
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
cdef int intval(int x) except -1:
|
|
Packit |
562c7a |
global call_count, next_expected_arg
|
|
Packit |
562c7a |
call_count += 1
|
|
Packit |
562c7a |
assert next_expected_arg == x, "calls not in source code order: expected %d, found %d" % (next_expected_arg, x)
|
|
Packit |
562c7a |
next_expected_arg += 1
|
|
Packit |
562c7a |
return x
|