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