code: def test_videoclip_copy(copy_func):
      """It must be possible to do a mixed copy of VideoClip using ``clip.copy()``,
      ``copy.copy(clip)`` and ``copy.deepcopy(clip)``.
      """
      clip = VideoClip()
      other_clip = VideoClip()
  
      for attr in clip.__dict__:
          # mask and audio are shallow copies that should be initialized
          if attr in ("mask", "audio"):
              if attr == "mask":
                  nested_object = BitmapClip([["R"]], duration=0.01)
              else:
                  nested_object = AudioClip(
                      lambda t: [np.sin(880 * 2 * np.pi * t)],
                      duration=0.01,
                      fps=44100,
                  )
              setattr(clip, attr, nested_object)
          else:
              setattr(clip, attr, "foo")
  
      copied_clip = copy_func(clip)
  
      # VideoClip attributes are copied
      for attr in copied_clip.__dict__:
          value = getattr(copied_clip, attr)
          assert value == getattr(clip, attr)
  
          # other instances are not edited
          assert value != getattr(other_clip, attr)
  
          # shallow copies of mask and audio
          if attr in ("mask", "audio"):
              for nested_attr in value.__dict__:
                  assert getattr(value, nested_attr) == getattr(
                      getattr(clip, attr), nested_attr
                  )
  
      # nested objects of instances copies are not edited
      assert other_clip.mask is None
      assert other_clip.audio is None
  
imports: import copy
  import os
  import numpy
  from PIL import Image
  import pytest
  from moviepy.audio.AudioClip import AudioClip
  from moviepy.audio.io.AudioFileClip import AudioFileClip
  from moviepy.tools import convert_to_seconds
  from moviepy.video.compositing.CompositeVideoClip import CompositeVideoClip
  from moviepy.video.fx.mask_color import mask_color
  from moviepy.video.fx.multiply_speed import multiply_speed
  from moviepy.video.io.VideoFileClip import VideoFileClip
  from moviepy.video.VideoClip import BitmapClip, ColorClip, ImageClip, VideoClip
label_desc: Use image node_id 31 for calling a global function with example usage: test_videoclip_copy(copy_func) without return types