Skip to content

Commit 216e9fc

Browse files
committed
fix: fixed bug when passing unsorted lists into _intersecting_eventpairs and added test for it
1 parent 5f75f65 commit 216e9fc

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

aw_transform/filter_period_intersect.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ def _intersecting_eventpairs(
2525
events1: List[Event], events2: List[Event]
2626
) -> Iterable[Tuple[Event, Event, TimePeriod]]:
2727
"""A generator that yields each overlapping pair of events from two eventlists along with a TimePeriod of the intersection"""
28+
events1.sort(key=lambda e: e.timestamp)
29+
events2.sort(key=lambda e: e.timestamp)
2830
e1_i = 0
2931
e2_i = 0
3032
while e1_i < len(events1) and e2_i < len(events2):

tests/test_transforms.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,12 @@ def test_intersecting_eventpairs():
107107
intersecting = list(_intersecting_eventpairs(e1, e2))
108108
assert len(intersecting) == 1
109109

110+
# Test same as before, but reversed
111+
e1 = list(reversed(e1))
112+
e2 = list(reversed(e2))
113+
intersecting = list(_intersecting_eventpairs(e1, e2))
114+
assert len(intersecting) == 1
115+
110116

111117
def test_filter_period_intersect():
112118
td1h = timedelta(hours=1)

0 commit comments

Comments
 (0)