diff options
author | Delio Brignoli <brignoli.delio@gmail.com> | 2015-06-03 07:07:35 +0200 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2015-07-20 15:53:22 +0100 |
commit | 32aba40830320867bdddcf4e0a6658b9df49ac9a (patch) | |
tree | 102158f055113b6d44a39528a0a5f30a042281ba /tests | |
parent | f576057274abb2a73e2407a34366e78a1f2ef4f2 (diff) | |
download | micropython-32aba40830320867bdddcf4e0a6658b9df49ac9a.tar.gz micropython-32aba40830320867bdddcf4e0a6658b9df49ac9a.zip |
py: Implement memoryview slice assignment.
Adds ability to do "memcpy" with memoryview objects, such as:
m1[0:3] = m2[2:5].
Diffstat (limited to 'tests')
-rw-r--r-- | tests/basics/memoryview1.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/basics/memoryview1.py b/tests/basics/memoryview1.py index 2033f4ac2e..862a573e84 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") |