/* * 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