Changeset 390

Show
Ignore:
Timestamp:
06/24/08 15:45:55 (5 months ago)
Author:
apdavison
Message:

Tests now write output to a Results subdirectory of test, to avoid cluttering up the main test directory.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/nest1/__init__.py

    r374 r390  
    269269    else: 
    270270        source = [pynest.getAddress(source)] 
     271    file_handle = filename.replace('/','_') 
     272    tmpfile = "%s/%s" %(tempdir, file_handle) 
    271273    for src in source: 
    272274        pynest.connect(src, spike_detector[0]) 
    273         tmpfile = "%s/%s" %(tempdir, filename) 
    274         pynest.sr('/%s (%s) (w) file def' % (filename, tmpfile)) 
    275         pynest.sr('%s << /output_stream %s >> SetStatus' % (pynest.getGID(spike_detector[0]), filename)) 
     275        pynest.sr('/%s (%s) (w) file def' % (file_handle, tmpfile)) 
     276        pynest.sr('%s << /output_stream %s >> SetStatus' % (pynest.getGID(spike_detector[0]), file_handle)) 
    276277    recorders[filename] = ("spikes", tmpfile) 
    277278 
  • trunk/src/nest1/cells.py

    r368 r390  
    4545    nest_name = 'iaf_exp_neuron2' 
    4646 
    47 class IF_cond_alpha(common.ModelNotAvailable): 
    48     pass 
     47#class IF_cond_alpha(common.ModelNotAvailable): 
    4948 
    50 # Note that Istim is not available in iad_cond_neuron 
    51 #class IF_cond_alpha(common.IF_cond_alpha): 
    52 #    """Leaky integrate and fire model with fixed threshold and alpha-function- 
    53 #    shaped post-synaptic conductance.""" 
    54 #     
    55 #    translations = common.build_translations( 
    56 #        ('v_rest',     'U0'), 
    57 #        ('v_reset',    'Vreset'), 
    58 #        ('cm',         'C',     1000.0), # C is in pF, cm in nF 
    59 #        ('tau_m',      'gL',    "cm/tau_m*1000.0", "C/gL"), 
    60 #        ('tau_refrac', 'TauR',  "max(get_time_step(), tau_refrac)", "TauR"), 
    61 #        ('tau_syn_E',  'TauSyn_E'), 
    62 #        ('tau_syn_I',  'TauSyn_I'), 
    63 #        ('v_thresh',   'Theta'), 
    64 #        ('i_offset',   'Istim', 1000.0), # I0 is in pA, i_offset in nA 
    65 #        ('v_init',     'u'), 
    66 #        ('e_rev_E',    'V_reversal_E'), 
    67 #        ('e_rev_I',    'V_reversal_I'), 
    68 #    ) 
    69 #    nest_name = "iaf_cond_neuron" 
     49# Note that Istim is not available in iaf_cond_neuron 
     50class IF_cond_alpha(common.IF_cond_alpha): 
     51    """Leaky integrate and fire model with fixed threshold and alpha-function- 
     52    shaped post-synaptic conductance.""" 
     53     
     54    translations = common.build_translations( 
     55        ('v_rest',     'U0'), 
     56        ('v_reset',    'Vreset'), 
     57        ('cm',         'C',     1000.0), # C is in pF, cm in nF 
     58        ('tau_m',      'gL',    "cm/tau_m*1000.0", "C/gL"), 
     59        ('tau_refrac', 'TauR',  "max(get_time_step(), tau_refrac)", "TauR"), 
     60        ('tau_syn_E',  'TauSyn_E'), 
     61        ('tau_syn_I',  'TauSyn_I'), 
     62        ('v_thresh',   'Theta'), 
     63        ('i_offset',   'Istim', 1000.0), # I0 is in pA, i_offset in nA 
     64        ('v_init',     'u'), 
     65        ('e_rev_E',    'V_reversal_E'), 
     66        ('e_rev_I',    'V_reversal_I'), 
     67    ) 
     68    nest_name = "iaf_cond_neuron" 
    7069     
    7170 
  • trunk/test/IF_cond_alpha.py

    r384 r390  
    1010import sys 
    1111 
    12 if hasattr(sys,"argv"):     # run using python 
    13     simulator = sys.argv[-1] 
    14 else: 
    15     simulator = "neuron"    # run using nrngui -python 
    16  
     12simulator = sys.argv[-1] 
    1713 
    1814exec("from pyNN.%s import *" % simulator) 
    19  
    2015 
    2116setup(timestep=0.1,min_delay=0.1,max_delay=4.0) 
     
    3227connI = connect(spike_sourceI, ifcell, weight=0.02, synapse_type='inhibitory',delay=4.0) 
    3328     
    34 record_v(ifcell,"IF_cond_alpha_%s.v" % simulator) 
     29record_v(ifcell, "Results/IF_cond_alpha_%s.v" % simulator) 
    3530 
    3631run(200.0) 
  • trunk/test/IF_cond_exp.py

    r384 r390  
    1010import sys 
    1111 
    12 if hasattr(sys,"argv"):     # run using python 
    13     simulator = sys.argv[-1] 
    14 else: 
    15     simulator = "neuron"    # run using nrngui -python 
    16  
     12simulator = sys.argv[-1] 
    1713 
    1814exec("from pyNN.%s import *" % simulator) 
     
    3228connI = connect(spike_sourceI, ifcell, weight=0.02, synapse_type ='inhibitory',delay=4.0) 
    3329     
    34 record_v(ifcell,"IF_cond_exp_%s.v" % simulator) 
     30record_v(ifcell, "Results/IF_cond_exp_%s.v" % simulator) 
    3531run(200.0) 
    3632 
  • trunk/test/IF_curr_alpha.py

    r340 r390  
    2828connI = connect(spike_sourceI, ifcell, weight=-1.5, synapse_type='inhibitory', delay=4.0) 
    2929 
    30 record_v(ifcell,"IF_curr_alpha_%s.v" % simulator) 
     30record_v(ifcell, "Results/IF_curr_alpha_%s.v" % simulator) 
    3131run(200.0) 
    3232 
  • trunk/test/IF_curr_alpha2.py

    r341 r390  
    1010import sys 
    1111 
    12 if hasattr(sys,"argv"):     # run using python 
    13     simulator = sys.argv[-1] 
    14 else: 
    15     simulator = "neuron"    # run using nrngui -python 
    16  
     12simulator = sys.argv[-1] 
    1713 
    1814exec("from pyNN.%s import *" % simulator) 
     
    2723conn = connect(spike_source,ifcells,weight=1.5) 
    2824 
    29 record_v(ifcells[0],"IF_curr_alpha2_%s.v" % simulator) 
     25record_v(ifcells[0], "Results/IF_curr_alpha2_%s.v" % simulator) 
    3026run(100.0) 
    3127 
  • trunk/test/IF_curr_exp.py

    r340 r390  
    2828connI = connect(spike_sourceI, ifcell, weight=-1.5, synapse_type='inhibitory', delay=4.0) 
    2929     
    30 record_v(ifcell,"IF_curr_exp_%s.v" % simulator) 
     30record_v(ifcell, "Results/IF_curr_exp_%s.v" % simulator) 
    3131run(200.0) 
    3232   
  • trunk/test/IF_curr_exp2.py

    r341 r390  
    88from pyNN.random import NumpyRNG 
    99 
    10 if hasattr(sys,"argv"):     # run using python 
    11     simulator = sys.argv[-1] 
    12 else: 
    13     simulator = "neuron"    # run using nrngui -python 
    14  
     10simulator = sys.argv[-1] 
    1511 
    1612exec("from pyNN.%s import *" % simulator) 
     
    3531conn = connect(spike_source, ifcell, weight=1.5, synapse_type='excitatory', delay=2.0) 
    3632     
    37 record(ifcell,"IF_curr_exp2_%s.ras" % simulator) 
    38 record_v(ifcell,"IF_curr_exp2_%s.v" % simulator) 
     33record(ifcell, "Results/IF_curr_exp2_%s.ras" % simulator) 
     34record_v(ifcell, "Results/IF_curr_exp2_%s.v" % simulator) 
    3935run(simtime) 
    4036   
  • trunk/test/SpikeSourcePoisson.py

    r341 r390  
    1010import sys 
    1111 
    12 if hasattr(sys,"argv"):     # run using python 
    13     simulator = sys.argv[-1] 
    14 else: 
    15     simulator = "neuron"    # run using nrngui -python 
    16  
     12simulator = sys.argv[-1] 
    1713 
    1814exec("from pyNN.%s import *" % simulator) 
    1915 
    2016 
    21 setup(timestep=0.01, min_delay=0.01) 
     17setup(timestep=0.1, min_delay=0.1) 
    2218 
    2319poissonsource = create(SpikeSourcePoisson,{'rate' : 100., 'duration' : 100., 'start' : 100.}) 
    2420 
    25 record(poissonsource,"SpikeSourcePoisson_%s.ras" % simulator) 
     21record(poissonsource, "Results/SpikeSourcePoisson_%s.ras" % simulator) 
    2622run(300.0) 
    2723   
  • trunk/test/runtests.py

    r341 r390  
    1 #!/usr/bin/env python 
    21""" Master script for running tests. 
    32$Id$ 
     
    76import numpy as N 
    87import logging 
     8import sys 
    99 
    1010logging.basicConfig(level=logging.DEBUG, 
     
    2121def run(cmd,engine): 
    2222    #print 'Running "', cmd, '" with', engine.upper() 
    23     logfile = open("%s_%s.log" % (cmd,engine), 'w') 
     23    fail = False 
     24    logfile = open("Results/%s_%s.log" % (cmd,engine), 'w') 
    2425    if engine in ('nest1', 'pcsim', 'nest2', 'neuron'): 
    25         cmd = 'python ' + cmd + '.py ' + engine 
     26        cmd = sys.executable + ' ' + cmd + '.py ' + engine 
    2627    else: 
    2728        logging.error('Invalid simulation engine "%s". Valid values are "nest1", "nest2", "pcsim", and "neuron"' % engine) 
     
    3536    if match: 
    3637        errorMsg = match.groupdict()['body'] 
    37      
    3838    if len(errorMsg) > 0: 
    3939        logging.error("\n=== %s Error =======================" % engine.upper()) 
    4040        logging.error("  " + errorMsg.replace("\n","\n   ")) 
    4141        logging.error("=======================================") 
    42         sys.exit(2
     42        raise Exception(
    4343 
    4444def sortTracesByCells(traces, gids): 
     
    7171        try: 
    7272            run(script, engine) 
    73             pattern = '%s_*_%s.v' % (script, engine) 
     73            pattern = 'Results/%s_*_%s.v' % (script, engine) 
    7474            filenames = glob.glob(pattern) 
    7575            if len(filenames) == 0: 
    76                 pattern = '%s_%s.v' % (script, engine) 
     76                pattern = 'Results/%s_%s.v' % (script, engine) 
    7777                filenames = glob.glob(pattern) 
    7878            if filenames: 
     
    124124    else: 
    125125        logging.info("%s: Fail - %s" % (script, fail_message)) 
    126  
     126    return fail 
    127127 
    128128def compare_rasters(script,mse_threshold,engines): 
     
    139139        #if (True): 
    140140            run(script, engine) 
    141             filenames = glob.glob('%s_*_%s.ras' % (script, engine)) 
     141            pattern = 'Results/%s_*_%s.ras' % (script, engine) 
     142            filenames = glob.glob(pattern) 
    142143            if len(filenames) == 0: 
    143                 filenames = glob.glob('%s_%s.ras' % (script, engine)) 
     144                pattern = 'Results/%s_%s.ras' % (script, engine) 
     145                filenames = glob.glob(pattern) 
    144146            if filenames: 
    145147                for filename in filenames: 
     
    158160                    rasters[engine].append(raster) 
    159161            else: 
    160                 fail = True; fail_message += "No files match glob pattern. " 
     162                fail = True; fail_message += "No files match glob pattern %s. " % pattern 
    161163        except Exception: 
    162164            fail = True 
     
    191193if __name__ == "__main__": 
    192194     
    193     engine_list = ("nest1", "neuron", "pcsim", "nest2") 
    194      
     195    engine_list = ["nest1", "neuron", "pcsim", "nest2"] 
     196    for engine in engine_list: 
     197        try: 
     198            exec("import pyNN.%s" % engine) 
     199        except ImportError, errmsg: 
     200            engine_list.remove(engine) 
     201            logging.warning("Unable to use %s: %s" % (engine, errmsg)) 
     202    if len(engine_list) < 2: 
     203        logging.error("Need at least two simulators to run tests.") 
     204        sys.exit(1) 
     205    logging.debug("Using the following simulators: %s" % ", ".join(engine_list)) 
     206             
    195207    thresholds_v = {"IF_curr_alpha"  : 0.26, 
    196208                    "IF_curr_exp"    : 0.25,  
  • trunk/test/simpleNetwork.py

    r341 r390  
    1111import sys 
    1212 
    13 if hasattr(sys,"argv"):     # run using python 
    14     simulator = sys.argv[-1] 
    15 else: 
    16     simulator = "neuron"    # run using nrngui -python 
     13simulator = sys.argv[-1] 
    1714 
    1815exec("from pyNN.%s import *" % simulator) 
     
    4138run(tstop) 
    4239 
    43 output_population.printSpikes("simpleNetwork_output_%s.ras" % simulator) 
    44 input_population.printSpikes("simpleNetwork_input_%s.ras" % simulator) 
    45 output_population.print_v("simpleNetwork_output_%s.v" % simulator) 
     40output_population.printSpikes("Results/simpleNetwork_output_%s.ras" % simulator) 
     41input_population.printSpikes("Results/simpleNetwork_input_%s.ras" % simulator) 
     42output_population.print_v("Results/simpleNetwork_output_%s.v" % simulator) 
    4643 
    4744end() 
  • trunk/test/simpleNetworkL.py

    r340 r390  
    3434conn2 = connect(spike_source, ifcell2, weight=1.0) 
    3535     
    36 record_v(ifcell1,"simpleNetworkL_1_%s.v" % simulator) 
    37 record_v(ifcell2,"simpleNetworkL_2_%s.v" % simulator) 
     36record_v(ifcell1, "Results/simpleNetworkL_1_%s.v" % simulator) 
     37record_v(ifcell2, "Results/simpleNetworkL_2_%s.v" % simulator) 
    3838run(tstop) 
    3939     
  • trunk/test/small_network.py

    r340 r390  
    5757run(simtime) 
    5858 
    59 cells.printSpikes("small_network_%s.ras" % (simulator, )) 
    60 cells.print_v("small_network_%s.v" % (simulator, )) 
     59cells.printSpikes("Results/small_network_%s.ras" % (simulator, )) 
     60cells.print_v("Results/small_network_%s.v" % (simulator, )) 
    6161 
    6262print "Mean firing rate: ", cells.meanSpikeCount()*1000.0/simtime, "Hz"