def test_max_delay(): '''Test that changing delays after compression works. ''' reinit_default_clock() inp = SpikeGeneratorGroup(1, [(0, 1*ms)]) G = NeuronGroup(1, model='v:1') mon = StateMonitor(G, 'v', record=True) # one synapse syn = Synapses(inp, G, model='w:1', pre='v+=w', max_delay=5*ms) syn[:, :] = 1 syn.w[:, :] = 1 syn.delay[:, :] = 0 * ms net = Network(inp, G, syn, mon) net.run(defaultclock.dt) syn.delay[:, :] = 5 * ms net.run(6.5*ms) # spike should arrive at 5 + 1 ms assert (mon[0][mon.times >= 6 * ms] == 1).all() assert (mon[0][mon.times < 6 * ms] == 0).all() # same as above but with two synapses reinit_default_clock() mon.reinit() G.reinit() syn = Synapses(inp, G, model='w:1', pre='v+=w', max_delay=5*ms) syn[:, :] = 2 syn.w[:, :] = 1 syn.delay[:, :] = [0 * ms, 0 * ms] net = Network(inp, G, syn, mon) net.run(defaultclock.dt) syn.delay[:, :] = [5 * ms, 5 * ms] net.run(6.5*ms) # spike should arrive at 5 + 1 ms assert (mon[0][mon.times >= 6 * ms] == 2).all() assert (mon[0][mon.times < 6 * ms] == 0).all()
def test_max_delay(): '''Test that changing delays after compression works. ''' reinit_default_clock() inp = SpikeGeneratorGroup(1, [(0, 1 * ms)]) G = NeuronGroup(1, model='v:1') mon = StateMonitor(G, 'v', record=True) # one synapse syn = Synapses(inp, G, model='w:1', pre='v+=w', max_delay=5 * ms) syn[:, :] = 1 syn.w[:, :] = 1 syn.delay[:, :] = 0 * ms net = Network(inp, G, syn, mon) net.run(defaultclock.dt) syn.delay[:, :] = 5 * ms net.run(6.5 * ms) # spike should arrive at 5 + 1 ms assert (mon[0][mon.times >= 6 * ms] == 1).all() assert (mon[0][mon.times < 6 * ms] == 0).all() # same as above but with two synapses reinit_default_clock() mon.reinit() G.reinit() syn = Synapses(inp, G, model='w:1', pre='v+=w', max_delay=5 * ms) syn[:, :] = 2 syn.w[:, :] = 1 syn.delay[:, :] = [0 * ms, 0 * ms] net = Network(inp, G, syn, mon) net.run(defaultclock.dt) syn.delay[:, :] = [5 * ms, 5 * ms] net.run(6.5 * ms) # spike should arrive at 5 + 1 ms assert (mon[0][mon.times >= 6 * ms] == 2).all() assert (mon[0][mon.times < 6 * ms] == 0).all()