예제 #1
0
 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)
예제 #2
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
예제 #3
0
 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)
예제 #4
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)
예제 #5
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))
예제 #6
0
 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)
예제 #7
0
 def testDuration(self):
     spk = spikes.SpikeTrain(numpy.arange(0,110,10), 0, 100)
     assert spk.duration() == 100
예제 #8
0
 def testCopy(self):
     spk = spikes.SpikeTrain(numpy.arange(0,110,10), 0, 100)
     spk2 = spk.copy()
     assert spk.is_equal(spk2)
예제 #9
0
 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) )
예제 #10
0
 def testCreateSpikeTrainFull(self):
     spk = spikes.SpikeTrain(numpy.arange(0,110,10), 0, 100)
     assert (spk.t_start == 0) and (spk.t_stop == 100)
예제 #11
0
 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)) )
예제 #12
0
 def testIsi(self):
     spk = spikes.SpikeTrain(numpy.arange(0,200,10))
     assert numpy.all(spk.isi() == 10)
예제 #13
0
 def testSetItem(self):
     spktrain = spikes.SpikeTrain(numpy.arange(10))
     self.spk[11] = spktrain
     assert len(self.spk) == 11
예제 #14
0
 def testFanoFactorIsi(self):
     spk = spikes.SpikeTrain(numpy.arange(0,1010,10))
     assert spk.fano_factor_isi() == 0.
예제 #15
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
예제 #16
0
 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
예제 #17
0
 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))
예제 #18
0
 def testAppend(self):
     spktrain = spikes.SpikeTrain(numpy.arange(10))
     self.assertRaises(Exception, self.spk.append, 0, spktrain)