manim/tests/test_value_tracker.py
SwiddisZwei 855ea2d128
Expand documentation, testing, and functionality of ValueTrackers; remove ExponentialValueTracker (#1382)
* Expand documentation in value_tracker.py

* Expand documentation in value_tracker.py

* Add more inline operators to ValueTracker

* Reformat value_tracker

* Add more inline operators to ValueTracker

* Expand ValueTracker testing to 100% coverage

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Apply suggestions from code review

Co-authored-by: Benjamin Hackl <devel@benjamin-hackl.at>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Remove ExponentialValueTracker

* Move `animate` explanation to class description

* Add to ComplexValueTracker get_value docs.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* removed import

* consistent tracker

* Apply suggestions from code review

Co-authored-by: kolibril13 <44469195+kolibril13@users.noreply.github.com>

* Update manim/mobject/value_tracker.py

Co-authored-by: Benjamin Hackl <devel@benjamin-hackl.at>

* Update manim/mobject/value_tracker.py

Change type from union to float suggested by kolibril13

Co-authored-by: kolibril13 <44469195+kolibril13@users.noreply.github.com>

* Change rest of union[int, float] to float

* Fix flaot typo to float

* Fix another typo

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Benjamin Hackl <devel@benjamin-hackl.at>
Co-authored-by: kolibril13 <44469195+kolibril13@users.noreply.github.com>
2021-05-12 11:17:29 +02:00

100 lines
2.5 KiB
Python

from manim.mobject.geometry import Dot
from manim.mobject.value_tracker import ComplexValueTracker, ValueTracker
def test_value_tracker_set_value():
"""Test ValueTracker.set_value()"""
tracker = ValueTracker()
tracker.set_value(10.0)
assert tracker.get_value() == 10.0
def test_value_tracker_get_value():
"""Test ValueTracker.get_value()"""
tracker = ValueTracker(10.0)
assert tracker.get_value() == 10.0
def test_value_tracker_interpolate():
"""Test ValueTracker.interpolate()"""
tracker1 = ValueTracker(1.0)
tracker2 = ValueTracker(2.5)
tracker3 = ValueTracker().interpolate(tracker1, tracker2, 0.7)
assert tracker3.get_value() == 2.05
def test_value_tracker_increment_value():
"""Test ValueTracker.increment_value()"""
tracker = ValueTracker(0.0)
tracker.increment_value(10.0)
assert tracker.get_value() == 10.0
def test_value_tracker_bool():
"""Test ValueTracker.__bool__()"""
tracker = ValueTracker(0.0)
assert not tracker
tracker.increment_value(1.0)
assert tracker
def test_value_tracker_iadd():
"""Test ValueTracker.__iadd__()"""
tracker = ValueTracker(0.0)
tracker += 10.0
assert tracker.get_value() == 10.0
def test_value_tracker_ifloordiv():
"""Test ValueTracker.__ifloordiv__()"""
tracker = ValueTracker(5.0)
tracker //= 2.0
assert tracker.get_value() == 2.0
def test_value_tracker_imod():
"""Test ValueTracker.__imod__()"""
tracker = ValueTracker(20.0)
tracker %= 3.0
assert tracker.get_value() == 2.0
def test_value_tracker_imul():
"""Test ValueTracker.__imul__()"""
tracker = ValueTracker(3.0)
tracker *= 4.0
assert tracker.get_value() == 12.0
def test_value_tracker_ipow():
"""Test ValueTracker.__ipow__()"""
tracker = ValueTracker(3.0)
tracker **= 3.0
assert tracker.get_value() == 27.0
def test_value_tracker_isub():
"""Test ValueTracker.__isub__()"""
tracker = ValueTracker(20.0)
tracker -= 10.0
assert tracker.get_value() == 10.0
def test_value_tracker_itruediv():
"""Test ValueTracker.__itruediv__()"""
tracker = ValueTracker(5.0)
tracker /= 2.0
assert tracker.get_value() == 2.5
def test_complex_value_tracker_set_value():
"""Test ComplexValueTracker.set_value()"""
tracker = ComplexValueTracker()
tracker.set_value(1 + 2j)
assert tracker.get_value() == 1 + 2j
def test_complex_value_tracker_get_value():
"""Test ComplexValueTracker.get_value()"""
tracker = ComplexValueTracker(2.0 - 3.0j)
assert tracker.get_value() == 2.0 - 3.0j