Skip to content

Commit 95d961b

Browse files
Fix distance calculation to use iloc for indexing (#64)
This fixes the FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]` Added regression tests for distance calculation. --------- Co-authored-by: glopesdev <g.lopes@neurogears.org>
1 parent 3a52039 commit 95d961b

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

src/swc/aeon/analysis/utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ def distancetravelled(angle, radius=4.0):
2020
clickdown = (turns > jumpthreshold).astype(int) * -1
2121
turns = (clickup + clickdown).cumsum()
2222
distance = 2 * np.pi * radius * (turns + angle / maxvalue)
23-
distance = distance - distance[0]
23+
distance = distance - distance.iloc[0]
2424
return distance
2525

2626

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
"""Tests for the `swc.aeon.analysis.utils` module."""
2+
3+
import pytest
4+
5+
from swc.aeon.analysis import utils
6+
from swc.aeon.io.api import load
7+
from tests.schema import exp02
8+
9+
10+
@pytest.mark.parametrize(
11+
("radius", "expected_sum"),
12+
[(0, 0), (4, -170), (-4, 170)],
13+
ids=["zero radius", "positive radius", "negative radius"],
14+
)
15+
def test_distancetravelled(monotonic_dir, radius, expected_sum):
16+
"""Test `distancetravelled` correctly computes the expected sum (down to the closest integer)
17+
for the specified test file.
18+
"""
19+
data = load(monotonic_dir, exp02.Patch2.Encoder)
20+
result = utils.distancetravelled(data.angle, radius)
21+
assert int(result.sum()) == expected_sum

0 commit comments

Comments
 (0)