code: def test_setfps_withchangeduration(video):
      clip = video(end_time=0.2)
      # The sum is unique for each frame, so we can use it as a frame-ID
      # to check which frames are being preserved
      clip_sums = [f.sum() for f in clip.iter_frames()]
  
      clip2 = clip.with_fps(48, change_duration=True)
      clip2_sums = [f.sum() for f in clip2.iter_frames()]
      assert clip2_sums == clip_sums
      assert clip2.duration == clip.duration / 2
  
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 29 for calling a global function with example usage: test_setfps_withchangeduration(video) without return types