/* * ticket-673.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-673 - Precise models are inconsistent with respect to whether 1 time step is an acceptable refractory time Synopsis: (ticket-673) run -> NEST exits if test fails Description: Test whether precise models can handle t_ref==simulation resolution Author: Susanne Kunkel, 2013-01-23 */ /unittest (9990) require /unittest using M_ERROR setverbosity % model t_ref run_sim -> time of 2nd spike /run_sim { /tref Set ResetKernel 0 << /resolution 0.1 >> SetStatus << /I_e 1000. /t_ref tref >> Create /n Set /spike_detector Create /d Set n d Connect 20. Simulate d /events get /times get 1 get } def % iaf_psc_alpha_presc is not affected /models [ /iaf_psc_alpha_canon /iaf_psc_delta_canon /iaf_psc_exp_ps ] def % for all models: % run the simulation with t_ref=1.0 ms % run the simulation with t_ref=0.1 ms % check that the second spike is shifted by 0.9 ms /dt 1.0 0.1 sub def { models { dup 1.0 run_sim exch 0.1 run_sim sub dt sub abs 1e-15 leq } Map true exch { and } Fold } assert_or_die endusing