def test_loop(util, video): clip = BitmapClip([["R"], ["G"], ["B"]], fps=1) clip1 = loop(clip, n=2) # loop 2 times target1 = BitmapClip([["R"], ["G"], ["B"], ["R"], ["G"], ["B"]], fps=1) assert clip1 == target1 clip2 = loop(clip, duration=8) # loop 8 seconds target2 = BitmapClip( [["R"], ["G"], ["B"], ["R"], ["G"], ["B"], ["R"], ["G"]], fps=1) assert clip2 == target2 clip3 = loop(clip).with_duration(5) # infinite loop target3 = BitmapClip([["R"], ["G"], ["B"], ["R"], ["G"]], fps=1) assert clip3 == target3 clip = video(start_time=0.2, end_time=0.3) # 0.1 seconds long clip1 = loop(clip).with_duration(0.5) # infinite looping clip1.write_videofile(os.path.join(util.TMP_DIR, "loop1.webm")) clip2 = loop(clip, duration=0.5) # loop for 1 second clip2.write_videofile(os.path.join(util.TMP_DIR, "loop2.webm")) clip3 = loop(clip, n=3) # loop 3 times clip3.write_videofile(os.path.join(util.TMP_DIR, "loop3.webm")) # Test audio looping clip = AudioClip(lambda t: np.sin(440 * 2 * np.pi * t) * (t % 1) + 0.5, duration=2.5, fps=44100) clip1 = clip.loop(2)
def test_loop(): clip = BitmapClip([["R"], ["G"], ["B"]], fps=1) clip1 = loop(clip, n=2) # loop 2 times target1 = BitmapClip([["R"], ["G"], ["B"], ["R"], ["G"], ["B"]], fps=1) assert clip1 == target1 clip2 = loop(clip, duration=8) # loop 8 seconds target2 = BitmapClip( [["R"], ["G"], ["B"], ["R"], ["G"], ["B"], ["R"], ["G"]], fps=1) assert clip2 == target2 clip3 = loop(clip).with_duration(5) # infinite loop target3 = BitmapClip([["R"], ["G"], ["B"], ["R"], ["G"]], fps=1) assert clip3 == target3 clip = get_test_video().subclip(0.2, 0.3) # 0.1 seconds long clip1 = loop(clip).with_duration(0.5) # infinite looping clip1.write_videofile(os.path.join(TMP_DIR, "loop1.webm")) clip2 = loop(clip, duration=0.5) # loop for 1 second clip2.write_videofile(os.path.join(TMP_DIR, "loop2.webm")) clip3 = loop(clip, n=3) # loop 3 times clip3.write_videofile(os.path.join(TMP_DIR, "loop3.webm")) # Test audio looping clip = AudioClip(lambda t: np.sin(440 * 2 * np.pi * t) * (t % 1) + 0.5, duration=2.5, fps=44100) clip1 = clip.loop(2) # TODO fix AudioClip.__eq__() # assert concatenate_audioclips([clip, clip]) == clip1 close_all_clips(objects=locals())