/*
* test_iaf_min_delay_create.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::test_iaf_min_delay_create - sli script for testing automatic adjustment of min_delay
Synopsis: (test_iaf_min_delay_create) run -> compares results for different min_delays
Description:
The simulation is run with a range of different min_delays. All
should give identical results. This is achieved by sampling the
membrane potential at a fixed interval.
The min_delay is specified by creating a corresponding
connection. The companion test test_iaf_min_delay_set sets
the value explicitly as a default value of the synapse type.
Other test scripts discuss the various aspects of this script in detail,
see the SeeAlso key below. If this test fails go back to the simpler ones.
Author: July 2004, Diesmann, January 2005, Plesser, September 2010, Diesmann
SeeAlso: iaf_neuron, testsuite::test_iaf_i0, testsuite::test_iaf_i0_refractory, testsuite::test_iaf_dc, testsuite::test_min_delay, testsuite::test_min_delay
*/
/unittest (6335) require
/unittest using
/delay 2.0 def % actual delay between dc generator and neuron
/h 0.1 def % computation step size
/RunMinDelay {
/min_del Set % argument: minimal delay in ms
min_del delay leq assert
ResetKernel
0 << /local_num_threads 1 /resolution h >> SetStatus
/iaf_neuron Create
/iaf_neuron Create
1.0 min_del Connect
/iaf_neuron Create /neuron Set
/dc_generator Create /dc_gen Set
dc_gen << /amplitude 1000. >> SetStatus
/voltmeter Create /vm Set
vm << /withtime true >> SetStatus
% must connect with explicit delay to assure
% consistency as min_delay varies
dc_gen neuron 1.0 delay Connect
vm neuron Connect
10.5 Simulate % vm samples at 1ms intervals, therefore we
% get 10 data points for each min_elay if we make
% sure that simulation time exceeds the last required
% min_delay step
vm [/events [/times /V_m]] get cva Transpose
} def
{
[0.1 0.2 0.3 0.4 0.5 0.6 1.0 2.0]
{RunMinDelay} Map
dup
First exch Rest {1 index eq } Map
exch pop
true exch {and} Fold
}
assert_or_die