def testCvIsi(self): poisson_param = 1./40 isi = numpy.random.exponential(poisson_param, 1000) poisson_times = numpy.cumsum(isi)*1000. # To convert the spikes_time in ms spk1 = spikes.SpikeTrain(poisson_times) spk2 = spikes.SpikeTrain(range(10), t_stop=10) assert 0.9 < spk1.cv_isi() < 1.1 self.assertEqual(spk2.cv_isi(), 0)
def testTime_Slice(self): spk1 = spikes.SpikeTrain(numpy.arange(0,1010,10)) spk1 = spk1.time_slice(250, 750) assert len(numpy.extract((spk1.spike_times < 250) | (spk1.spike_times > 750), spk1.spike_times)) == 0 spk2 = spikes.SpikeTrain([0.0, 0.1, 0.3, 0.6, 0.15]) self.assert_( arrays_are_equal(spikes.SpikeTrain([0.15, 0.3]).spike_times, spk2.time_slice(0.11,0.4).spike_times) ) # should not include 0.1 self.assert_( arrays_are_equal(spikes.SpikeTrain([0.1, 0.15, 0.3]).spike_times, spk2.time_slice(0.10,0.4).spike_times) ) # should include 0.1
def testKreuzDistance(self): poisson_param = 1./40 isi = numpy.random.exponential(poisson_param, 20) poisson_times = numpy.cumsum(isi)*1000. # To convert the spikes_time in ms spk = spikes.SpikeTrain(poisson_times) isi = numpy.random.exponential(poisson_param, 20) poisson_times = numpy.cumsum(isi)*1000. # To convert the spikes_time in ms spk2 = spikes.SpikeTrain(poisson_times) poisson_param = 1./5 isi = numpy.random.exponential(poisson_param, 20) poisson_times = numpy.cumsum(isi)*1000. # To convert the spikes_time in ms spk3 = spikes.SpikeTrain(poisson_times) assert (spk.distance_kreuz(spk2) < spk.distance_kreuz(spk3)) and (spk.distance_kreuz(spk) == 0)
def testVictorPurpuraDistance(self): poisson_param = 1./40 isi = numpy.random.exponential(poisson_param, 20) poisson_times = numpy.cumsum(isi)*1000. # To convert the spikes_time in ms spk = spikes.SpikeTrain(poisson_times) isi = numpy.random.exponential(poisson_param, 20) poisson_times = numpy.cumsum(isi)*1000. # To convert the spikes_time in ms spk2 = spikes.SpikeTrain(poisson_times) poisson_param = 1./5 isi = numpy.random.exponential(poisson_param, 20) poisson_times = numpy.cumsum(isi)*1000. # To convert the spikes_time in ms spk3 = spikes.SpikeTrain(poisson_times) assert (spk.distance_victorpurpura(spk2,0.1) < spk.distance_victorpurpura(spk3,0.1)) \ and (spk.distance_victorpurpura(spk, 0.1) == 0)
def testHistogram(self): poisson_param = 1./40 isi = numpy.random.exponential(poisson_param, 1000) poisson_times = numpy.cumsum(isi)*1000. # To convert the spikes_time in ms spk = spikes.SpikeTrain(poisson_times) hist = spk.time_histogram(5000) N = len(hist) - 1 assert numpy.all((30 < hist[0:N]) & (hist[0:N] < 60))
def testMerge(self): spk = spikes.SpikeTrain(numpy.arange(0,110,10)) spk2 = spikes.SpikeTrain(numpy.arange(100,210,10)) spk.merge(spk2) assert (spk.t_stop == 200) and (len(spk) == 22)
def testDuration(self): spk = spikes.SpikeTrain(numpy.arange(0,110,10), 0, 100) assert spk.duration() == 100
def testCopy(self): spk = spikes.SpikeTrain(numpy.arange(0,110,10), 0, 100) spk2 = spk.copy() assert spk.is_equal(spk2)
def testCreateWithTStopOnly(self): spk = spikes.SpikeTrain(numpy.arange(0,110,10), t_stop=70) assert (spk.t_start == 0) and (spk.t_stop == 70) assert arrays_are_equal( spk.spike_times, numpy.arange(0, 80, 10) )
def testCreateSpikeTrainFull(self): spk = spikes.SpikeTrain(numpy.arange(0,110,10), 0, 100) assert (spk.t_start == 0) and (spk.t_stop == 100)
def testCreateSpikeTrainFromList(self): spk = spikes.SpikeTrain(range(0,110,10)) assert (spk.t_start == 0) and (spk.t_stop == 100) self.assert_( arrays_are_equal(spk.spike_times, numpy.arange(0,110,10)) )
def testIsi(self): spk = spikes.SpikeTrain(numpy.arange(0,200,10)) assert numpy.all(spk.isi() == 10)
def testSetItem(self): spktrain = spikes.SpikeTrain(numpy.arange(10)) self.spk[11] = spktrain assert len(self.spk) == 11
def testFanoFactorIsi(self): spk = spikes.SpikeTrain(numpy.arange(0,1010,10)) assert spk.fano_factor_isi() == 0.
def testMeanRate(self): poisson_param = 1./40 isi = numpy.random.exponential(poisson_param, 1000) poisson_times = numpy.cumsum(isi)*1000. # To convert the spikes_time in ms spk = spikes.SpikeTrain(poisson_times) assert 35 < spk.mean_rate() < 45
def testTimeAxis(self): spk = spikes.SpikeTrain(numpy.arange(0,1010,10)) if newnum: assert len(spk.time_axis(100)) == 11 else: assert len(spk.time_axis(100)) == 10
def testAddOffset(self): spk = spikes.SpikeTrain(numpy.arange(0,1010,10)) spk.time_offset(50) assert (spk.t_start == 50) and (spk.t_stop == 1050) and numpy.all(spk.spike_times == numpy.arange(50,1060,10))
def testAppend(self): spktrain = spikes.SpikeTrain(numpy.arange(10)) self.assertRaises(Exception, self.spk.append, 0, spktrain)