def test__pickle(self): signal1 = AnalogSignal([1, 2, 3, 4], sampling_period=1 * pq.ms, units=pq.S) signal1.annotations['index'] = 2 signal1.channel_index = ChannelIndex(index=[0]) signal1.array_annotate(**{'anno1': [23], 'anno2': ['A']}) fobj = open('./pickle', 'wb') pickle.dump(signal1, fobj) fobj.close() fobj = open('./pickle', 'rb') try: signal2 = pickle.load(fobj) except ValueError: signal2 = None assert_array_equal(signal1, signal2) assert_array_equal(signal2.channel_index.index, np.array([0])) assert_array_equal(signal2.array_annotations['anno1'], np.array([23])) self.assertIsInstance(signal2.array_annotations, ArrayDict) # Make sure the dict can perform correct checks after unpickling signal2.array_annotations['anno3'] = [2] with self.assertRaises(ValueError): signal2.array_annotations['anno4'] = [2, 1] fobj.close() os.remove('./pickle')
def test__slice_should_modify_linked_channelindex(self): n = 8 # number of channels signal = AnalogSignal(np.arange(n * 100.0).reshape(100, n), sampling_rate=1*pq.kHz, units="mV") self.assertEqual(signal.shape, (100, n)) signal.channel_index = ChannelIndex(index=np.arange(n, dtype=int), channel_names=["channel{0}".format(i) for i in range(n)]) odd_channels = signal[:, 1::2] self.assertEqual(odd_channels.shape, (100, n//2)) assert_array_equal(odd_channels.channel_index.index, np.arange(n//2, dtype=int)) assert_array_equal(odd_channels.channel_index.channel_names, ["channel{0}".format(i) for i in range(1, n, 2)]) assert_array_equal(signal.channel_index.channel_names, ["channel{0}".format(i) for i in range(n)])
def test__slice_should_modify_linked_channelindex(self): n = 8 # number of channels signal = AnalogSignal(np.arange(n * 100.0).reshape(100, n), sampling_rate=1*pq.kHz, units="mV", name="test") self.assertEqual(signal.shape, (100, n)) signal.channel_index = ChannelIndex(index=np.arange(n, dtype=int), channel_names=["channel{0}".format(i) for i in range(n)]) signal.channel_index.analogsignals.append(signal) odd_channels = signal[:, 1::2] self.assertEqual(odd_channels.shape, (100, n//2)) assert_array_equal(odd_channels.channel_index.index, np.arange(n//2, dtype=int)) assert_array_equal(odd_channels.channel_index.channel_names, ["channel{0}".format(i) for i in range(1, n, 2)]) assert_array_equal(signal.channel_index.channel_names, ["channel{0}".format(i) for i in range(n)]) self.assertEqual(odd_channels.channel_index.analogsignals[0].name, signal.name)
def test__pickle(self): signal1 = AnalogSignal([1, 2, 3, 4], sampling_period=1*pq.ms, units=pq.S) signal1.annotations['index'] = 2 signal1.channel_index = ChannelIndex(index=[0]) fobj = open('./pickle', 'wb') pickle.dump(signal1, fobj) fobj.close() fobj = open('./pickle', 'rb') try: signal2 = pickle.load(fobj) except ValueError: signal2 = None assert_array_equal(signal1, signal2) assert_array_equal(signal2.channel_index.index, np.array([0])) fobj.close() os.remove('./pickle')
def test__pickle(self): signal1 = AnalogSignal([1, 2, 3, 4], sampling_period=1 * pq.ms, units=pq.S) signal1.annotations['index'] = 2 signal1.channel_index = ChannelIndex(index=[0]) fobj = open('./pickle', 'wb') pickle.dump(signal1, fobj) fobj.close() fobj = open('./pickle', 'rb') try: signal2 = pickle.load(fobj) except ValueError: signal2 = None assert_array_equal(signal1, signal2) assert_array_equal(signal2.channel_index.index, np.array([0])) fobj.close() os.remove('./pickle')