summaryrefslogtreecommitdiff
path: root/test/test_distance.py
diff options
context:
space:
mode:
authorMario Mulansky <mario.mulansky@gmx.net>2014-12-26 15:31:15 -0600
committerMario Mulansky <mario.mulansky@gmx.net>2014-12-26 15:31:15 -0600
commit8c98f0043fa785b8352b3c685615da24b30e6149 (patch)
tree336822ffad08b63b2f43cbaad4e8b54ba430d0de /test/test_distance.py
parent4fd98cc5f26c516f742c9b0a2dc787d309d65d32 (diff)
spike sync
Diffstat (limited to 'test/test_distance.py')
-rw-r--r--test/test_distance.py54
1 files changed, 54 insertions, 0 deletions
diff --git a/test/test_distance.py b/test/test_distance.py
index 7be0d9b..d98069d 100644
--- a/test/test_distance.py
+++ b/test/test_distance.py
@@ -130,6 +130,60 @@ def test_spike():
decimal=16)
+def test_spike_sync():
+ spikes1 = np.array([1.0, 2.0, 3.0])
+ spikes2 = np.array([2.1])
+ spikes1 = spk.add_auxiliary_spikes(spikes1, 4.0)
+ spikes2 = spk.add_auxiliary_spikes(spikes2, 4.0)
+ for k in xrange(1, 3):
+ assert_almost_equal(spk.spike_sync_distance(spikes1, spikes2, k=k),
+ 0.5, decimal=16)
+
+ spikes2 = np.array([3.1])
+ spikes2 = spk.add_auxiliary_spikes(spikes2, 4.0)
+ for k in xrange(1, 3):
+ assert_almost_equal(spk.spike_sync_distance(spikes1, spikes2, k=k),
+ 0.5, decimal=16)
+
+ spikes2 = np.array([1.1])
+ spikes2 = spk.add_auxiliary_spikes(spikes2, 4.0)
+ for k in xrange(1, 3):
+ assert_almost_equal(spk.spike_sync_distance(spikes1, spikes2, k=k),
+ 0.5, decimal=16)
+
+ spikes2 = np.array([0.9])
+ spikes2 = spk.add_auxiliary_spikes(spikes2, 4.0)
+ for k in xrange(1, 3):
+ assert_almost_equal(spk.spike_sync_distance(spikes1, spikes2, k=k),
+ 0.5, decimal=16)
+
+ spikes1 = np.array([100, 300, 400, 405, 410, 500, 700, 800,
+ 805, 810, 815, 900])
+ spikes2 = np.array([100, 200, 205, 210, 295, 350, 400, 510,
+ 600, 605, 700, 910])
+ spikes3 = np.array([100, 180, 198, 295, 412, 420, 510, 640,
+ 695, 795, 820, 920])
+ spikes1 = spk.add_auxiliary_spikes(spikes1, 1000)
+ spikes2 = spk.add_auxiliary_spikes(spikes2, 1000)
+ spikes3 = spk.add_auxiliary_spikes(spikes3, 1000)
+ for k in xrange(1, 10):
+ assert_almost_equal(spk.spike_sync_distance(spikes1, spikes2, k=k),
+ 0.5, decimal=15)
+ assert_almost_equal(spk.spike_sync_distance(spikes1, spikes3, k=k),
+ 0.5, decimal=15)
+ assert_almost_equal(spk.spike_sync_distance(spikes2, spikes3, k=k),
+ 0.5, decimal=15)
+
+ f1 = spk.spike_sync_profile(spikes1, spikes2, k=1)
+ f2 = spk.spike_sync_profile(spikes1, spikes3, k=1)
+ f3 = spk.spike_sync_profile(spikes2, spikes3, k=1)
+ f = spk.spike_sync_profile_multi([spikes1, spikes2, spikes3], k=1)
+ # hands on definition of the average multivariate spike synchronization
+ expected = (f1.integral() + f2.integral() + f3.integral()) / \
+ (len(f1.y)+len(f2.y)+len(f3.y)-3)
+ assert_almost_equal(f.avrg(), expected, decimal=15)
+
+
def check_multi_profile(profile_func, profile_func_multi):
# generate spike trains:
t1 = spk.add_auxiliary_spikes(np.array([0.2, 0.4, 0.6, 0.7]), 1.0)