@@ -191,6 +191,77 @@ def test_tsodyks_markram_synapse():
191191 assert_array_equal (tau_psc , np .arange (0.2 , 0.7 , 0.1 ))
192192
193193
194+ def test_native_tsodyks_synapse_convergent_connect ():
195+ """native_synapse_type tsodyks_synapse via _convergent_connect preserves user tau_psc (issue #810)."""
196+ if not have_nest :
197+ pytest .skip ("nest not available" )
198+ import nest
199+ sim = pyNN .nest
200+ sim .setup ()
201+ spike_source = sim .Population (1 , sim .SpikeSourceArray (spike_times = np .arange (10 , 100 , 10 )))
202+ neurons = sim .Population (5 , sim .IF_cond_exp (e_rev_I = - 75 , tau_syn_I = np .arange (0.2 , 0.7 , 0.1 )))
203+ synapse_type = sim .native_synapse_type ('tsodyks_synapse' )(
204+ U = 0.04 , tau_rec = 100.0 , tau_fac = 1000.0 , weight = 10.0 , delay = 0.5 , tau_psc = 5.0 )
205+ connector = sim .AllToAllConnector ()
206+ prj = sim .Projection (spike_source , neurons , connector ,
207+ receptor_type = 'inhibitory' ,
208+ synapse_type = synapse_type )
209+ connections = nest .GetConnections (
210+ nest .NodeCollection (list (prj ._sources )),
211+ synapse_model = prj .nest_synapse_model )
212+ tau_psc = np .array (nest .GetStatus (connections , 'tau_psc' ))
213+ assert_array_equal (tau_psc , [5.0 ] * 5 )
214+ sim .end ()
215+
216+
217+ def test_native_tsodyks_synapse_native_connect ():
218+ """native_synapse_type tsodyks_synapse via _connect (NativeRNG) preserves user tau_psc (issue #810)."""
219+ if not have_nest :
220+ pytest .skip ("nest not available" )
221+ import nest
222+ sim = pyNN .nest
223+ sim .setup ()
224+ spike_source = sim .Population (1 , sim .SpikeSourceArray (spike_times = np .arange (10 , 100 , 10 )))
225+ neurons = sim .Population (5 , sim .IF_cond_exp (e_rev_I = - 75 , tau_syn_I = 3.0 ))
226+ synapse_type = sim .native_synapse_type ('tsodyks_synapse' )(
227+ U = 0.04 , tau_rec = 100.0 , tau_fac = 1000.0 , weight = 10.0 , delay = 0.5 , tau_psc = 5.0 )
228+ rng = sim .NativeRNG (seed = 1234 )
229+ connector = sim .FixedProbabilityConnector (p_connect = 1.0 , rng = rng )
230+ prj = sim .Projection (spike_source , neurons , connector ,
231+ receptor_type = 'inhibitory' ,
232+ synapse_type = synapse_type )
233+ connections = nest .GetConnections (
234+ nest .NodeCollection (list (prj ._sources )),
235+ synapse_model = prj .nest_synapse_model )
236+ tau_psc = np .array (nest .GetStatus (connections , 'tau_psc' ))
237+ assert_array_equal (tau_psc , [5.0 ] * 5 )
238+ sim .end ()
239+
240+
241+ def test_native_tsodyks2_synapse ():
242+ """native_synapse_type tsodyks2_synapse creates projection without error (issue #810)."""
243+ if not have_nest :
244+ pytest .skip ("nest not available" )
245+ import nest
246+ sim = pyNN .nest
247+ sim .setup ()
248+ spike_source = sim .Population (1 , sim .SpikeSourceArray (spike_times = np .arange (10 , 100 , 10 )))
249+ neurons = sim .Population (5 , sim .IF_cond_exp ())
250+ synapse_type = sim .native_synapse_type ('tsodyks2_synapse' )(
251+ U = 0.04 , tau_rec = 100.0 , tau_fac = 1000.0 , weight = 10.0 , delay = 0.5 )
252+ connector = sim .AllToAllConnector ()
253+ prj = sim .Projection (spike_source , neurons , connector ,
254+ receptor_type = 'excitatory' ,
255+ synapse_type = synapse_type )
256+ connections = nest .GetConnections (
257+ nest .NodeCollection (list (prj ._sources )),
258+ synapse_model = prj .nest_synapse_model )
259+ assert len (connections ) == 5
260+ U_vals = np .array (nest .GetStatus (connections , 'U' ))
261+ assert_array_equal (U_vals , [0.04 ] * 5 )
262+ sim .end ()
263+
264+
194265def test_native_electrode_types ():
195266 """ Test of NativeElectrodeType class. (See issue #506)"""
196267 if not have_nest :
0 commit comments