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')
Example #2
0
    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)])
Example #4
0
 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')
Example #6
0
    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')