Skip to content

Commit de16dad

Browse files
authored
Merge pull request #509 from nilaybhatia/val-tracker-increment
FEAT : Add increment using += support for ValueTracker
2 parents c60b8ef + beae778 commit de16dad

File tree

3 files changed

+33
-0
lines changed

3 files changed

+33
-0
lines changed

docs/source/changelog.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ Mobjects, Scenes, and Animations
6262
#. Add a :code:`Variable` class for displaying text that continuously updates to reflect the value of a python variable.
6363
#. The ``Tex`` and ``MathTex`` objects allow you to specify a custom TexTemplate using the ``template`` keyword argument.
6464
#. :code:`VGroup` now supports printing the class names of contained mobjects and :code:`VDict` supports printing the internal dict of mobjects
65+
#. :code:`ValueTracker` now supports increment using the `+=` operator (in addition to the already existing `increment_value` method)
6566

6667

6768
Documentation

manim/mobject/value_tracker.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,10 @@ def set_value(self, value):
5757
def increment_value(self, d_value):
5858
self.set_value(self.get_value() + d_value)
5959

60+
def __iadd__(self, d_value):
61+
self.increment_value(d_value)
62+
return self
63+
6064
def interpolate(self, mobject1, mobject2, alpha, path_func=straight_path):
6165
"""
6266
Turns self into an interpolation between mobject1

tests/test_value_tracker.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
from manim.mobject.value_tracker import ValueTracker
2+
3+
4+
def test_value_tracker_set_value():
5+
"""Test ValueTracker.set_value()"""
6+
tracker = ValueTracker()
7+
tracker.set_value(10.0)
8+
assert tracker.get_value() == 10.0
9+
10+
11+
def test_value_tracker_get_value():
12+
"""Test ValueTracker.get_value()"""
13+
tracker = ValueTracker(10.0)
14+
assert tracker.get_value() == 10.0
15+
16+
17+
def test_value_tracker_increment_value():
18+
"""Test ValueTracker.increment_value()"""
19+
tracker = ValueTracker(0.0)
20+
tracker.increment_value(10.0)
21+
assert tracker.get_value() == 10.0
22+
23+
24+
def test_value_tracker_iadd():
25+
"""Test ValueTracker.__iadd__()"""
26+
tracker = ValueTracker(0.0)
27+
tracker += 10.0
28+
assert tracker.get_value() == 10.0

0 commit comments

Comments
 (0)