Skip to content

Commit ec06eba

Browse files
committed
fix initialiation issue with smooth tendency
1 parent 29201d6 commit ec06eba

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

tests/tendencies/test_smooth.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ def test_prev_and_next_value():
7373
assert not tendency.annotations
7474

7575

76-
def test_generate():
76+
def test_get_value():
7777
"""
7878
Check the generated values.
7979
"""
@@ -83,3 +83,15 @@ def test_generate():
8383
assert values[0] == 3
8484
assert values[-1] == 6
8585
assert not tendency.annotations
86+
87+
88+
def test_get_value_no_start():
89+
"""
90+
Check the generated values when no start is provided.
91+
"""
92+
tendency = SmoothTendency(user_duration=8, user_from=3, user_to=6)
93+
_, values = tendency.get_value()
94+
95+
assert values[0] == 3
96+
assert values[-1] == 6
97+
assert not tendency.annotations

waveform_editor/tendencies/smooth.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ def __init__(self, **kwargs):
2626
self.from_ = 0.0
2727
self.to = 0.0
2828
super().__init__(**kwargs)
29+
self._update_values()
2930

3031
def get_value(
3132
self, time: Optional[np.ndarray] = None
@@ -46,6 +47,12 @@ def get_value(
4647
time = np.linspace(float(self.start), float(self.end), num_steps)
4748

4849
values = self.spline(time)
50+
51+
if np.any(np.isnan(values)):
52+
raise ValueError(
53+
"A spline was generated at a time outside of its generated time range."
54+
)
55+
4956
return time, values
5057

5158
def get_derivative(self, time: np.ndarray) -> np.ndarray:
@@ -110,6 +117,7 @@ def _update_values(self):
110117
[self.start, self.end],
111118
[from_, to],
112119
bc_type=((1, d_start), (1, d_end)),
120+
extrapolate=False,
113121
)
114122

115123
values_changed = (

0 commit comments

Comments
 (0)