code: def test_parts(self, slices):
      base = bytearray(range(10))
      base_mv = memoryview(base)
  
      equiv_start = min(s.indices(10)[0] for s in slices)
      equiv_stop = max(s.indices(10)[1] for s in slices)
      equiv = base_mv[equiv_start:equiv_stop]
  
      parts = [base_mv[s] for s in slices]
      result = merge_memoryviews(parts)
      assert result.obj is base
      assert len(result) == len(equiv)
      assert result == equiv
  
file_path: distributed/distributed/protocol/tests/test_protocol_utils.py
imports: from __future__ import annotations
  import pytest
  from distributed.protocol.utils import merge_memoryviews, pack_frames, pack_frames_prelude, unpack_frames
label_desc: Use image node_id 3 for calling the TestMergeMemroyviews obj's underlying member method code with example usage: obj.test_parts(slices) without return types