diff --git a/tests/test_fsl_data_utils.py b/tests/test_fsl_data_utils.py index 3fd02a8f948d921fda54c0ca9481a83154d371fc..1ef030bd228dbc263a0b390329a646f162e186a3 100644 --- a/tests/test_fsl_data_utils.py +++ b/tests/test_fsl_data_utils.py @@ -9,6 +9,8 @@ import shutil import os import os.path as op +import numpy as np + import fsl.utils.tempdir as tempdir import fsl.data.utils as dutils @@ -105,3 +107,22 @@ def test_guessType(): asrt('norecognise.txt', None) os.remove('norecognise') os.remove('norecognise.txt') + + +def test_makeWriteable(): + robuf = bytes( b'\01\02\03\04') + wbuf = bytearray(b'\01\02\03\04') + + roarr = np.ndarray((4,), dtype=np.uint8, buffer=robuf) + warr = np.ndarray((4,), dtype=np.uint8, buffer=wbuf) + + warr.flags['WRITEABLE'] = False + + rocopy = dutils.makeWriteable(roarr) + wcopy = dutils.makeWriteable(warr) + + assert rocopy.base is not roarr.base + assert wcopy .base is warr .base + + rocopy[1] = 100 + wcopy[ 1] = 100