______________________________ test_EpochEncoder _______________________________
interactive = False
def test_EpochEncoder(interactive=False):
possible_labels = ['AAA', 'BBB', 'CCC', 'DDD']
ep_times = np.arange(0, 10., .5)
ep_durations = np.ones(ep_times.shape) * .25
ep_labels = np.random.choice(possible_labels, ep_times.size)
epoch = { 'time':ep_times, 'duration':ep_durations, 'label':ep_labels, 'name': 'MyFactor' }
> source = WritableEpochSource(epoch=epoch, possible_labels=possible_labels)
ephyviewer/tests/test_epochencoder.py:14:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <ephyviewer.datasource.epochs.WritableEpochSource object at 0x7ff8e059cd40>
epoch = {'duration': array([0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25,
0.25, 0.25, 0.25, 0.25, 0...', 'AAA', 'DDD', 'BBB', 'BBB', 'BBB', 'CCC', 'BBB', 'BBB',
'AAA', 'DDD'], dtype='<U3'), 'name': 'MyFactor', ...}
possible_labels = ['AAA', 'BBB', 'CCC', 'DDD'], color_labels = None
channel_name = '', restrict_to_possible_labels = False
def __init__(self, epoch=None, possible_labels=[], color_labels=None, channel_name='', restrict_to_possible_labels=False):
self.possible_labels = possible_labels
self.channel_name = channel_name
if epoch is None:
epoch = self.load()
InMemoryEpochSource.__init__(self, all_epochs=[epoch])
# assign each epoch a fixed, unique integer id
self._next_id = 0
for chan in self.all:
chan['id'] = np.arange(self._next_id, self._next_id + len(chan['time']))
self._next_id += len(chan['time'])
assert self.all[0]['time'].dtype.kind=='f'
assert self.all[0]['duration'].dtype.kind=='f'
# add labels missing from possible_labels but found in epoch data
new_labels_from_data = list(set(epoch['label'])-set(self.possible_labels))
if restrict_to_possible_labels:
assert len(new_labels_from_data)==0, f'epoch data contains labels not found in possible_labels: {new_labels_from_data}'
self.possible_labels += new_labels_from_data
# put the epochs into a canonical order after loading
self._clean_and_set(self.all[0]['time'], self.all[0]['duration'], self.all[0]['label'], self.all[0]['id'])
# TODO: colors should be managed directly by EpochEncoder
if color_labels is None:
n = len(self.possible_labels)
> cmap = matplotlib.cm.get_cmap('Dark2' , n)
E AttributeError: module 'matplotlib.cm' has no attribute 'get_cmap'
ephyviewer/datasource/epochs.py:89: AttributeError
__________________________ test_EpochEncoder_settings __________________________
interactive = False
def test_EpochEncoder_settings(interactive=False):
possible_labels = ['AAA', 'BBB', 'CCC', 'DDD']
ep_times = np.arange(0, 10., .5)
ep_durations = np.ones(ep_times.shape) * .25
ep_labels = np.random.choice(possible_labels, ep_times.size)
epoch = { 'time':ep_times, 'duration':ep_durations, 'label':ep_labels, 'name': 'MyFactor' }
> source = WritableEpochSource(epoch=epoch, possible_labels=possible_labels)
ephyviewer/tests/test_epochencoder.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <ephyviewer.datasource.epochs.WritableEpochSource object at 0x7ff8e059da00>
epoch = {'duration': array([0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25,
0.25, 0.25, 0.25, 0.25, 0...', 'DDD', 'DDD', 'AAA', 'BBB', 'DDD', 'CCC', 'DDD', 'DDD',
'AAA', 'DDD'], dtype='<U3'), 'name': 'MyFactor', ...}
possible_labels = ['AAA', 'BBB', 'CCC', 'DDD'], color_labels = None
channel_name = '', restrict_to_possible_labels = False
def __init__(self, epoch=None, possible_labels=[], color_labels=None, channel_name='', restrict_to_possible_labels=False):
self.possible_labels = possible_labels
self.channel_name = channel_name
if epoch is None:
epoch = self.load()
InMemoryEpochSource.__init__(self, all_epochs=[epoch])
# assign each epoch a fixed, unique integer id
self._next_id = 0
for chan in self.all:
chan['id'] = np.arange(self._next_id, self._next_id + len(chan['time']))
self._next_id += len(chan['time'])
assert self.all[0]['time'].dtype.kind=='f'
assert self.all[0]['duration'].dtype.kind=='f'
# add labels missing from possible_labels but found in epoch data
new_labels_from_data = list(set(epoch['label'])-set(self.possible_labels))
if restrict_to_possible_labels:
assert len(new_labels_from_data)==0, f'epoch data contains labels not found in possible_labels: {new_labels_from_data}'
self.possible_labels += new_labels_from_data
# put the epochs into a canonical order after loading
self._clean_and_set(self.all[0]['time'], self.all[0]['duration'], self.all[0]['label'], self.all[0]['id'])
# TODO: colors should be managed directly by EpochEncoder
if color_labels is None:
n = len(self.possible_labels)
> cmap = matplotlib.cm.get_cmap('Dark2' , n)
E AttributeError: module 'matplotlib.cm' has no attribute 'get_cmap'
ephyviewer/datasource/epochs.py:89: AttributeError
___________________________ test_EpochEncoder_empty ____________________________
interactive = False
def test_EpochEncoder_empty(interactive=False):
possible_labels = ['AAA', 'BBB', 'CCC', 'DDD']
> source = WritableEpochSource(epoch=None, possible_labels=possible_labels)
ephyviewer/tests/test_epochencoder.py:57:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <ephyviewer.datasource.epochs.WritableEpochSource object at 0x7ff8e059d640>
epoch = {'duration': array([], dtype=float64), 'id': array([], dtype=int64), 'label': array([], dtype='<U3'), 'name': '', ...}
possible_labels = ['AAA', 'BBB', 'CCC', 'DDD'], color_labels = None
channel_name = '', restrict_to_possible_labels = False
def __init__(self, epoch=None, possible_labels=[], color_labels=None, channel_name='', restrict_to_possible_labels=False):
self.possible_labels = possible_labels
self.channel_name = channel_name
if epoch is None:
epoch = self.load()
InMemoryEpochSource.__init__(self, all_epochs=[epoch])
# assign each epoch a fixed, unique integer id
self._next_id = 0
for chan in self.all:
chan['id'] = np.arange(self._next_id, self._next_id + len(chan['time']))
self._next_id += len(chan['time'])
assert self.all[0]['time'].dtype.kind=='f'
assert self.all[0]['duration'].dtype.kind=='f'
# add labels missing from possible_labels but found in epoch data
new_labels_from_data = list(set(epoch['label'])-set(self.possible_labels))
if restrict_to_possible_labels:
assert len(new_labels_from_data)==0, f'epoch data contains labels not found in possible_labels: {new_labels_from_data}'
self.possible_labels += new_labels_from_data
# put the epochs into a canonical order after loading
self._clean_and_set(self.all[0]['time'], self.all[0]['duration'], self.all[0]['label'], self.all[0]['id'])
# TODO: colors should be managed directly by EpochEncoder
if color_labels is None:
n = len(self.possible_labels)
> cmap = matplotlib.cm.get_cmap('Dark2' , n)
E AttributeError: module 'matplotlib.cm' has no attribute 'get_cmap'
ephyviewer/datasource/epochs.py:89: AttributeError