mirror of
https://github.com/jeertmans/manim-slides.git
synced 2025-05-21 12:37:00 +08:00

* chore(deps): remove subprocess calls to FFMPEG with `av` Linked to the progess made in https://github.com/ManimCommunity/manim/pull/3501. The following PR aims at reducing subprocess calls for security and speed reasons. Also, with https://github.com/ManimCommunity/manim/pull/3501 is merged, FFMPEG should not be needed anymore as it is part of `PyAv`. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fix(lib): oops forgot to commit those changes * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * chore(lib): clear assets and clean code * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * chore(doc): document changes --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
106 lines
3.4 KiB
Python
106 lines
3.4 KiB
Python
from typing import MutableMapping
|
|
|
|
import pytest
|
|
|
|
from manim_slides.slide.base import BaseSlide
|
|
|
|
|
|
@pytest.fixture
|
|
def base_slide() -> BaseSlide:
|
|
return BaseSlide() # type: ignore[abstract]
|
|
|
|
|
|
class TestBaseSlide:
|
|
def test_frame_height(self, base_slide: BaseSlide) -> None:
|
|
with pytest.raises(NotImplementedError):
|
|
_ = base_slide._frame_height
|
|
|
|
def test_frame_width(self, base_slide: BaseSlide) -> None:
|
|
with pytest.raises(NotImplementedError):
|
|
_ = base_slide._frame_width
|
|
|
|
def test_background_color(self, base_slide: BaseSlide) -> None:
|
|
with pytest.raises(NotImplementedError):
|
|
_ = base_slide._background_color
|
|
|
|
def test_resolution(self, base_slide: BaseSlide) -> None:
|
|
with pytest.raises(NotImplementedError):
|
|
_ = base_slide._resolution
|
|
|
|
def test_partial_movie_files(self, base_slide: BaseSlide) -> None:
|
|
with pytest.raises(NotImplementedError):
|
|
_ = base_slide._partial_movie_files
|
|
|
|
def test_show_progress_bar(self, base_slide: BaseSlide) -> None:
|
|
with pytest.raises(NotImplementedError):
|
|
_ = base_slide._show_progress_bar
|
|
|
|
def test_leave_progress_bar(self, base_slide: BaseSlide) -> None:
|
|
with pytest.raises(NotImplementedError):
|
|
_ = base_slide._leave_progress_bar
|
|
|
|
def test_start_at_animation_number(self, base_slide: BaseSlide) -> None:
|
|
with pytest.raises(NotImplementedError):
|
|
_ = base_slide._start_at_animation_number
|
|
|
|
def test_canvas(self, base_slide: BaseSlide) -> None:
|
|
assert len(base_slide.canvas) == 0
|
|
assert isinstance(base_slide.canvas, MutableMapping)
|
|
|
|
def test_add_to__and_remove_from_canvas(self, base_slide: BaseSlide) -> None:
|
|
assert len(base_slide.canvas) == 0
|
|
|
|
base_slide.add_to_canvas(a=1, b=2)
|
|
|
|
assert len(base_slide.canvas) == 2
|
|
assert base_slide.canvas["a"] == 1
|
|
assert base_slide.canvas["b"] == 2
|
|
|
|
with pytest.raises(KeyError):
|
|
_ = base_slide.canvas["c"]
|
|
|
|
base_slide.add_to_canvas(b=3, c=4)
|
|
|
|
assert len(base_slide.canvas) == 3
|
|
|
|
assert sorted(base_slide.canvas_mobjects) == [1, 3, 4]
|
|
|
|
base_slide.remove_from_canvas("a", "b", "c")
|
|
|
|
assert len(base_slide.canvas) == 0
|
|
|
|
with pytest.raises(KeyError):
|
|
base_slide.remove_from_canvas("a")
|
|
|
|
def test_mobjects_without_canvas(self) -> None:
|
|
pass # This property should be tested in test_slide.py
|
|
|
|
def test_wait_time_between_slides(self, base_slide: BaseSlide) -> None:
|
|
assert base_slide.wait_time_between_slides == 0.0
|
|
|
|
base_slide.wait_time_between_slides = 1.0
|
|
|
|
assert base_slide.wait_time_between_slides == 1.0
|
|
|
|
base_slide.wait_time_between_slides = -1.0
|
|
|
|
assert base_slide.wait_time_between_slides == 0.0
|
|
|
|
def test_play(self) -> None:
|
|
pass # This method should be tested in test_slide.py
|
|
|
|
def test_next_slide(self) -> None:
|
|
pass # This method should be tested in test_slide.py
|
|
|
|
def test_add_last_slide(self) -> None:
|
|
pass # This method should be tested in test_slide.py
|
|
|
|
def test_save_slides(self) -> None:
|
|
pass # This method should be tested in test_slide.py
|
|
|
|
def test_zoom(self) -> None:
|
|
pass # This method should be tested in test_slide.py
|
|
|
|
def test_wipe(self) -> None:
|
|
pass # This method should be tested in test_slide.py
|