From 32aba40830320867bdddcf4e0a6658b9df49ac9a Mon Sep 17 00:00:00 2001 From: Delio Brignoli Date: Wed, 3 Jun 2015 07:07:35 +0200 Subject: py: Implement memoryview slice assignment. Adds ability to do "memcpy" with memoryview objects, such as: m1[0:3] = m2[2:5]. --- tests/basics/memoryview1.py | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'tests') diff --git a/tests/basics/memoryview1.py b/tests/basics/memoryview1.py index 2033f4ac2..862a573e8 100644 --- a/tests/basics/memoryview1.py +++ b/tests/basics/memoryview1.py @@ -36,3 +36,45 @@ print(list(m)) print(list(m[1:-1])) m[2] = 6 print(a) + +# test slice assignment between memoryviews +b1 = bytearray(b'1234') +b2 = bytearray(b'5678') +b3 = bytearray(b'5678') +m1 = memoryview(b1) +m2 = memoryview(b2) +m3 = memoryview(b3) +m2[1:3] = m1[0:2] +print(b2) +b3[1:3] = m1[0:2] +print(b3) +m1[2:4] = b3[1:3] +print(b1) + +try: + m2[1:3] = b1[0:4] +except ValueError: + print("ValueError") + +try: + m2[1:3] = m1[0:4] +except ValueError: + print("ValueError") + +try: + m2[0:4] = m1[1:3] +except ValueError: + print("ValueError") + +# test memoryview of arrays with items sized larger than 1 +a1 = array.array('i', [0]*5) +m4 = memoryview(a1) +a2 = array.array('i', [3]*5) +m5 = memoryview(a2) +m4[1:3] = m5[1:3] +print(a1) + +try: + m4[1:3] = m2[1:3] +except ValueError: + print("ValueError") -- cgit v1.2.3