Skip to content

Commit b5c7f57

Browse files
committed
fix tests
1 parent 442629f commit b5c7f57

2 files changed

Lines changed: 33 additions & 7 deletions

File tree

src/spikeinterface/core/baserecording.py

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -541,10 +541,10 @@ def shift_times(self, shift: int | float, segment_index: int | None = None) -> N
541541
else:
542542
segments_to_shift = (segment_index,)
543543

544-
for idx in segments_to_shift:
545-
rs = self._recording_segments[idx]
544+
for index in segments_to_shift:
545+
rs = self._recording_segments[index]
546546

547-
if self.has_time_vector(segment_index=idx):
547+
if self.has_time_vector(segment_index=index):
548548
rs.time_vector += shift
549549
else:
550550
new_start_time = 0 + shift if rs.t_start is None else rs.t_start + shift
@@ -781,11 +781,37 @@ def time_slice(self, start_time: float | None, end_time: float | None) -> BaseRe
781781
BaseRecording
782782
A new recording object with only samples between start_time and end_time
783783
"""
784+
num_segments = self.get_num_segments()
785+
assert (
786+
num_segments == 1
787+
), f"Time slicing is only supported for single segment recordings. Found {num_segments} segments."
788+
789+
t_start = self.get_start_time()
790+
t_end = self.get_end_time()
791+
792+
if start_time is not None:
793+
t_start = self.get_start_time()
794+
t_start_too_early = start_time < t_start
795+
if t_start_too_early:
796+
raise ValueError(f"start_time {start_time} is before the start time {t_start} of the recording.")
797+
t_start_too_late = start_time > t_end
798+
if t_start_too_late:
799+
raise ValueError(f"start_time {start_time} is after the end time {t_end} of the recording.")
800+
start_frame = self.time_to_sample_index(start_time)
801+
else:
802+
start_frame = None
784803

785-
assert self.get_num_segments() == 1, "Time slicing is only supported for single segment recordings."
804+
if end_time is not None:
805+
t_end_too_early = end_time < t_start
806+
if t_end_too_early:
807+
raise ValueError(f"end_time {end_time} is before the start time {t_start} of the recording.")
786808

787-
start_frame = self.time_to_sample_index(start_time) if start_time else None
788-
end_frame = self.time_to_sample_index(end_time) if end_time else None
809+
t_end_too_late = end_time > t_end
810+
if t_end_too_late:
811+
raise ValueError(f"end_time {end_time} is after the end time {t_end} of the recording.")
812+
end_frame = self.time_to_sample_index(end_time)
813+
else:
814+
end_frame = None
789815

790816
return self.frame_slice(start_frame=start_frame, end_frame=end_frame)
791817

src/spikeinterface/core/generate.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def generate_recording(
3333
set_probe: bool | None = True,
3434
ndim: int | None = 2,
3535
seed: int | None = None,
36-
) -> NumpySorting:
36+
) -> BaseRecording:
3737
"""
3838
Generate a lazy recording object.
3939
Useful for testing API and algos.

0 commit comments

Comments
 (0)