def test__match_events(self): starts = Event(times=[0.5, 10.0, 25.2] * pq.s) starts.annotate(event_type='trial start') starts.array_annotate(trial_id=[1, 2, 3]) stops = Event(times=[5.5, 14.9, 30.1] * pq.s) stops.annotate(event_type='trial stop') stops.array_annotate(trial_id=[1, 2, 3]) stops2 = Event(times=[0.1, 5.5, 5.6, 14.9, 25.2, 30.1] * pq.s) stops2.annotate(event_type='trial stop') stops2.array_annotate(trial_id=[1, 1, 2, 2, 3, 3]) # test for matching input events, should just return identical copies matched_starts, matched_stops = match_events(starts, stops) assert_same_attributes(matched_starts, starts) assert_same_attributes(matched_stops, stops) # test for non-matching input events, should find shortest positive non-zero durations matched_starts2, matched_stops2 = match_events(starts, stops2) assert_same_attributes(matched_starts2, starts) assert_same_attributes(matched_stops2, stops)
def test__match_events(self): proxy_event = EventProxy(rawio=self.reader, event_channel_index=0, block_index=0, seg_index=0) loaded_event = proxy_event.load() regular_event = Event(times=loaded_event.times - 1 * loaded_event.units, labels=np.array(['trigger_a', 'trigger_b'] * 3, dtype='U12')) seg = Segment() seg.events = [regular_event, proxy_event] # test matching two events one of which is a proxy matched_regular, matched_proxy = match_events(regular_event, proxy_event) assert_same_attributes(matched_regular, regular_event) assert_same_attributes(matched_proxy, loaded_event)