code: def test_serialize_writeable_array_readonly_base_object():
      # Regression test for https://github.com/dask/distributed/issues/3252
  
      x = np.arange(3)
      # Create array which doesn't own it's own memory
      y = np.broadcast_to(x, (3, 3))
  
      # Make y writeable and it's base object (x) read-only
      y.setflags(write=True)
      x.setflags(write=False)
  
      # Serialize / deserialize y
      z = deserialize(*serialize(y))
      np.testing.assert_equal(z, y)
  
      # Ensure z and y have the same flags (including WRITEABLE)
      assert z.flags == y.flags
  
imports: from __future__ import annotations
  from zlib import crc32
  import pytest
  from dask.utils import ensure_bytes, tmpfile
  from distributed.protocol import decompress, deserialize, dumps, loads, msgpack, serialize, to_serialize
  from distributed.protocol.compression import maybe_compress
  from distributed.protocol.numpy import itemsize
  from distributed.protocol.utils import BIG_BYTES_SHARD_SIZE
  from distributed.system import MEMORY_LIMIT
  from distributed.utils import nbytes
  from distributed.utils_test import gen_cluster
label_desc: Use image node_id 14 for calling a global function with example usage: test_serialize_writeable_array_readonly_base_object() without return types