/*
* ticket-541.sli
*
* This file is part of NEST.
*
* Copyright (C) 2004 The NEST Initiative
*
* NEST is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* NEST is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with NEST. If not, see <http://www.gnu.org/licenses/>.
*
*/
/* BeginDocumentation
Name: testsuite::ticket-541 - Regression test for aeif_cond_alpha reset
Synopsis: (ticket-541) run -> NEST exits if test fails
Description:
This test is based on an original Python demonstrator by Abigail Morrison
(see #541).
Per r10018, no-one can reproduce the error and the test is very slow.
Therefore, this test resides in manualtests.
Author: Yury V. Zaytsev, Hans E. Plesser, 2012-11-29
*/
/unittest (8831) require
/unittest using
M_ERROR setverbosity
/test_reset {
/connect_neurons Set
/use_aeif Set
ResetKernel
0 <<
/resolution 0.1
/print_time false
/rng_seeds [ 123 ]
/overwrite_files true
>> SetStatus
/poisson_generator << /rate 10000. >> SetDefaults
/background /poisson_generator Create def
/msn_model use_aeif {
<<
/C_m 200.
/Delta_T 2.
/E_L -58.
/E_ex 0.
/E_in -64.
/I_e 0.
/V_peak 0.
/V_reset -46.
/V_th -50.
/a 1.
/b 100.
/g_L 10.
/t_ref 0.
/tau_syn_ex 0.3
/tau_syn_in 2.
/tau_w 200.
/w 0.
/gsl_error_tol 1e-9
>> /aeif_cond_alpha
} {
<<
/V_th -55.
>> /iaf_psc_exp
} ifelse rollu CopyModel
/neurons [
background 1 add
/msn_model 500 Create
] Range def
connect_neurons {
/cnt 50 def
neurons {
cnt
neurons
cnt array 14500. -0.0003 mul add
cnt array 2. add
RandomDivergentConnect
} forall
} if
background
neurons
[ 5000. 0.00346 mul ]
[ 1. ]
DivergentConnect
/meter /spike_detector Create def
meter <<
/withgid true
/withtime true
/to_file false
/to_memory true
>> SetStatus
neurons meter ConvergentConnect
/run_simulation {
/label Set
ResetNetwork
0 << /time 0.0 /rng_seeds [ 123 ] >> SetStatus
meter << /n_events 0 /label label >> SetStatus
500 Simulate
/results meter GetStatus def
} def
(sr1) run_simulation
/ev1 results/events/senders :: def
/st1 results/events/times :: def
(sr2) run_simulation
/ev2 results/events/senders :: def
/st2 results/events/times :: def
ev1 cva ev2 cva eq
st1 cva st2 cva eq
and
} def
(true true) ==
true true test_reset assert_or_die
(true false) ==
true false test_reset assert_or_die
(false true) ==
false true test_reset assert_or_die
(false false) ==
false false test_reset assert_or_die
endusing