code: def test_multi_block_copy(ant, sphere, uniform, airplane, tetbeam):
      multi = multi_from_datasets(
          ant, sphere, uniform, airplane, tetbeam
      )
      # Now check everything
      multi_copy = multi.copy()
      assert multi.n_blocks == 5 == multi_copy.n_blocks
      assert id(multi[0]) != id(multi_copy[0])
      assert id(multi[-1]) != id(multi_copy[-1])
      for i in range(multi_copy.n_blocks):
          assert pv.is_pyvista_dataset(multi_copy.GetBlock(i))
      # Now check shallow
      multi_copy = multi.copy(deep=False)
      assert multi.n_blocks == 5 == multi_copy.n_blocks
      assert id(multi[0]) == id(multi_copy[0])
      assert id(multi[-1]) == id(multi_copy[-1])
      for i in range(multi_copy.n_blocks):
          assert pv.is_pyvista_dataset(multi_copy.GetBlock(i))
  
imports: import pathlib
  import platform
  import weakref
  import numpy
  import pytest
  import vtk
  import pyvista
  from pyvista import ImageData, MultiBlock, PolyData, RectilinearGrid, StructuredGrid, examples
label_desc: Use image node_id 24 for calling a global function with example usage: test_multi_block_copy(ant, sphere, uniform, airplane, tetbeam) without return types