mirror of
https://github.com/ManimCommunity/manim.git
synced 2026-06-22 10:01:47 +00:00
Fix a few more tests related to scene (#4540)
This commit is contained in:
parent
6156d861f2
commit
771f0152f6
6 changed files with 24 additions and 53 deletions
|
|
@ -424,6 +424,7 @@ class Manager(Generic[Scene_co]):
|
|||
break
|
||||
else:
|
||||
self.time += dt
|
||||
self.scene.time = self.time
|
||||
self.renderer.render(state)
|
||||
if self.window is not None and self.window.is_closing:
|
||||
raise EndSceneEarlyException()
|
||||
|
|
|
|||
|
|
@ -40,22 +40,13 @@ def test_wait_invalid_duration(duration):
|
|||
test_scene.wait(duration)
|
||||
|
||||
|
||||
@pytest.mark.parametrize("frozen_frame", [False, True])
|
||||
def test_wait_duration_shorter_than_frame_rate(manim_caplog, frozen_frame):
|
||||
def test_wait_duration_shorter_than_frame_rate(manim_caplog):
|
||||
manager = Manager(Scene)
|
||||
test_scene = manager.scene
|
||||
test_scene.wait(1e-9, frozen_frame=frozen_frame)
|
||||
test_scene.wait(1e-9)
|
||||
assert "too short for the current frame rate" in manim_caplog.text
|
||||
|
||||
|
||||
@pytest.mark.parametrize("duration", [0, -1])
|
||||
def test_pause_invalid_duration(duration):
|
||||
manager = Manager(Scene)
|
||||
test_scene = manager.scene
|
||||
with pytest.raises(ValueError, match="The duration must be a positive number."):
|
||||
test_scene.pause(duration)
|
||||
|
||||
|
||||
@pytest.mark.parametrize("max_time", [0, -1])
|
||||
def test_wait_until_invalid_max_time(max_time):
|
||||
manager = Manager(Scene)
|
||||
|
|
|
|||
|
|
@ -189,7 +189,8 @@ def test_animationgroup_calls_finish():
|
|||
def finish(self):
|
||||
self.finished = True
|
||||
|
||||
scene = Scene()
|
||||
manager = Manager(Scene)
|
||||
scene = manager.scene
|
||||
sqr_animation = MyAnimation(Square())
|
||||
circ_animation = MyAnimation(Circle())
|
||||
animation_group = AnimationGroup(sqr_animation, circ_animation)
|
||||
|
|
|
|||
|
|
@ -1,10 +1,11 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from manim import Circle, ReplacementTransform, Scene, Square, VGroup
|
||||
from manim import Circle, Manager, ReplacementTransform, Scene, Square, VGroup
|
||||
|
||||
|
||||
def test_no_duplicate_references():
|
||||
scene = Scene()
|
||||
manager = Manager(Scene)
|
||||
scene = manager.scene
|
||||
c = Circle()
|
||||
sq = Square()
|
||||
scene.add(c, sq)
|
||||
|
|
@ -15,7 +16,8 @@ def test_no_duplicate_references():
|
|||
|
||||
|
||||
def test_duplicate_references_in_group():
|
||||
scene = Scene()
|
||||
manager = Manager(Scene)
|
||||
scene = manager.scene
|
||||
c = Circle()
|
||||
sq = Square()
|
||||
vg = VGroup(c, sq)
|
||||
|
|
|
|||
|
|
@ -1,23 +0,0 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from manim import *
|
||||
|
||||
|
||||
def test_zoom():
|
||||
s1 = Square()
|
||||
s1.set_x(-10)
|
||||
s2 = Square()
|
||||
s2.set_x(10)
|
||||
|
||||
with tempconfig({"dry_run": True, "quality": "low_quality"}):
|
||||
manager = Manager(MovingCameraScene)
|
||||
scene = manager.scene
|
||||
scene.add(s1, s2)
|
||||
scene.play(scene.camera.auto_zoom([s1, s2]))
|
||||
|
||||
assert scene.camera.frame_width == abs(
|
||||
s1.get_left()[0] - s2.get_right()[0],
|
||||
)
|
||||
assert scene.camera.frame.get_center()[0] == (
|
||||
abs(s1.get_center()[0] + s2.get_center()[0]) / 2
|
||||
)
|
||||
|
|
@ -4,7 +4,7 @@ import datetime
|
|||
|
||||
import pytest
|
||||
|
||||
from manim import Circle, FadeIn, Group, Manager, Mobject, Scene, Square
|
||||
from manim import Circle, FadeIn, Group, Manager, OpenGLMobject, Scene, Square
|
||||
from manim.animation.animation import Wait
|
||||
|
||||
|
||||
|
|
@ -12,27 +12,26 @@ def test_scene_add_remove(dry_run):
|
|||
manager = Manager(Scene)
|
||||
scene = manager.scene
|
||||
assert len(scene.mobjects) == 0
|
||||
scene.add(Mobject())
|
||||
scene.add(OpenGLMobject())
|
||||
assert len(scene.mobjects) == 1
|
||||
scene.add(*(Mobject() for _ in range(10)))
|
||||
scene.add(*(OpenGLMobject() for _ in range(10)))
|
||||
assert len(scene.mobjects) == 11
|
||||
|
||||
# Check that adding a mobject twice does not actually add it twice
|
||||
repeated = Mobject()
|
||||
repeated = OpenGLMobject()
|
||||
scene.add(repeated)
|
||||
assert len(scene.mobjects) == 12
|
||||
scene.add(repeated)
|
||||
assert len(scene.mobjects) == 12
|
||||
|
||||
# Check that Scene.add() returns the Scene (for chained calls)
|
||||
assert scene.add(Mobject()) is scene
|
||||
assert scene.add(OpenGLMobject()) is scene
|
||||
|
||||
manager = Manager(Scene)
|
||||
scene = manager.scene
|
||||
to_remove = Mobject()
|
||||
scene = Scene()
|
||||
to_remove = OpenGLMobject()
|
||||
scene.add(to_remove)
|
||||
scene.add(*(Mobject() for _ in range(10)))
|
||||
scene.add(*(OpenGLMobject() for _ in range(10)))
|
||||
assert len(scene.mobjects) == 11
|
||||
scene.remove(to_remove)
|
||||
assert len(scene.mobjects) == 10
|
||||
|
|
@ -40,7 +39,7 @@ def test_scene_add_remove(dry_run):
|
|||
assert len(scene.mobjects) == 10
|
||||
|
||||
# Check that Scene.remove() returns the instance (for chained calls)
|
||||
assert scene.add(Mobject()) is scene
|
||||
assert scene.add(OpenGLMobject()) is scene
|
||||
|
||||
|
||||
def test_scene_time(dry_run):
|
||||
|
|
@ -87,10 +86,10 @@ def test_replace(dry_run):
|
|||
manager = Manager(Scene)
|
||||
scene = manager.scene
|
||||
|
||||
first = Mobject(name="first")
|
||||
second = Mobject(name="second")
|
||||
third = Mobject(name="third")
|
||||
fourth = Mobject(name="fourth")
|
||||
first = OpenGLMobject(name="first")
|
||||
second = OpenGLMobject(name="second")
|
||||
third = OpenGLMobject(name="third")
|
||||
fourth = OpenGLMobject(name="fourth")
|
||||
|
||||
scene.add(first)
|
||||
scene.add(Group(second, third, name="group"))
|
||||
|
|
@ -98,8 +97,8 @@ def test_replace(dry_run):
|
|||
assert_names(scene.mobjects, ["first", "group", "fourth"])
|
||||
assert_names(scene.mobjects[1], ["second", "third"])
|
||||
|
||||
alpha = Mobject(name="alpha")
|
||||
beta = Mobject(name="beta")
|
||||
alpha = OpenGLMobject(name="alpha")
|
||||
beta = OpenGLMobject(name="beta")
|
||||
|
||||
scene.replace(first, alpha)
|
||||
assert_names(scene.mobjects, ["alpha", "group", "fourth"])
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue