Changeset 1034
- Timestamp:
- 12/15/11 17:31:04 (5 months ago)
- Location:
- branches/neo_output
- Files:
-
- 7 modified
- 2 copied
-
src/common/projections.py (modified) (2 diffs)
-
src/connectors.py (modified) (1 diff)
-
src/neuron/electrodes.py (modified) (1 diff)
-
src/recording/__init__.py (modified) (2 diffs)
-
src/recording/files.py (copied) (copied from branches/neo_output/src/recording/files.py)
-
test/unittests/test_files.py (copied) (copied from branches/neo_output/test/unittests/test_files.py)
-
test/unittests/test_neuron.py (modified) (3 diffs)
-
test/unittests/test_recording.py (modified) (9 diffs)
-
test/unittests/test_simulation_control.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/neo_output/src/common/projections.py
r1030 r1034 276 276 277 277 if isinstance(file, basestring): 278 file = files.StandardTextFile(file, mode='w')278 file = recording.files.StandardTextFile(file, mode='w') 279 279 280 280 lines = [] … … 309 309 310 310 if isinstance(file, basestring): 311 file = files.StandardTextFile(file, mode='w')311 file = recording.files.StandardTextFile(file, mode='w') 312 312 313 313 if format == 'array': -
branches/neo_output/src/connectors.py
r1030 r1034 12 12 from pyNN import errors, common, core, random, utility, recording, descriptions 13 13 from pyNN.space import Space 14 #from pyNN.recording import files14 from pyNN.recording import files 15 15 from pyNN.random import RandomDistribution 16 16 from numpy import arccos, arcsin, arctan, arctan2, ceil, cos, cosh, e, exp, \ -
branches/neo_output/src/neuron/electrodes.py
r1032 r1034 72 72 for iclamp in self._devices: 73 73 iclamp.dur = value - self._start 74 stop = property(fget=lambda self: self._st art,74 stop = property(fget=lambda self: self._stop, 75 75 fset=_set_stop) 76 76 -
branches/neo_output/src/recording/__init__.py
r1032 r1034 50 50 logger.warning("File %s already exists. Renaming the original file to %s_old" % (filename, filename)) 51 51 52 def gather (data):52 def gather_array(data): 53 53 # gather 1D or 2D numpy arrays 54 54 if MPI is None: … … 193 193 data.annotate(**self.metadata) 194 194 if gather and self._simulator.state.num_processes > 1: 195 data = recording.gather(data)195 data = gather_array(data) 196 196 return data 197 197 -
branches/neo_output/test/unittests/test_neuron.py
r1008 r1034 268 268 self.cells[1]._cell.vtrace = numpy.arange(-64.0, -65.0, -0.1) 269 269 self.cells[0]._cell.record_times = self.cells[1]._cell.record_times = numpy.arange(0.0, 1.0, 0.1) 270 vdata = self.rv._get(['v'], gather=False, filter_ids=None) 271 assert_equal(len(vdata.segments[0].analogsignals), 2) 272 assert_arrays_equal(numpy.array(vdata.segments[0].analogsignals[0]), self.cells[0]._cell.vtrace) 270 simulator.state.t = simulator.state.dt * len(self.cells[0]._cell.vtrace) 271 vdata = self.rv._get_current_segment(variables=['v'], filter_ids=None) 272 assert_equal(len(vdata.analogsignalarrays), 1) 273 assert_arrays_equal(numpy.array(vdata.analogsignalarrays[0]), 274 numpy.vstack((self.cells[0]._cell.vtrace, self.cells[1]._cell.vtrace)).T) 273 275 274 276 def test__get_spikes(self): … … 277 279 self.cells[1]._cell.spike_times = numpy.arange(13.0, 23.0) 278 280 simulator.state.t = 111.0 279 sdata = self.rs._get (['spikes'], gather=False, filter_ids=None)280 assert_equal(len(sdata.s egments[0].spiketrains), 2)281 assert_arrays_equal(numpy.array(sdata.s egments[0].spiketrains[0]), self.cells[0]._cell.spike_times)281 sdata = self.rs._get_current_segment(variables=['spikes'], filter_ids=None) 282 assert_equal(len(sdata.spiketrains), 2) 283 assert_arrays_equal(numpy.array(sdata.spiketrains[0]), self.cells[0]._cell.spike_times) 282 284 283 285 def test__get_gsyn(self): 286 self.rg.recorded['gsyn_exc'] = self.cells 284 287 self.rg.recorded['gsyn_inh'] = self.cells 285 288 for cell in self.cells: … … 290 293 cell._cell.gsyn_trace['inhibitory_TM'] = numpy.arange(4.01, 4.0199, 0.001) 291 294 cell._cell.record_times = self.cells[1]._cell.record_times = numpy.arange(0.0, 1.0, 0.1) 292 gdata = self.rg._get(['gsyn_inh'], gather=False, filter_ids=None) 293 assert_equal(gdata.shape, (20,4)) 295 simulator.state.t = simulator.state.dt * len(cell._cell.gsyn_trace['excitatory']) 296 gdata = self.rg._get_current_segment(variables=['gsyn_exc', 'gsyn_inh'], filter_ids=None) 297 assert_equal(len(gdata.analogsignalarrays), 2) 298 assert_arrays_equal(numpy.array(gdata.analogsignalarrays[0][:,0]), 299 cell._cell.gsyn_trace['excitatory']) 300 assert_arrays_equal(numpy.array(gdata.analogsignalarrays[1][:,0]), 301 cell._cell.gsyn_trace['inhibitory']) 294 302 295 303 def test__local_count(self): -
branches/neo_output/test/unittests/test_recording.py
r1008 r1034 4 4 import numpy 5 5 import os 6 from datetime import datetime 6 7 from collections import defaultdict 7 8 from pyNN.utility import assert_arrays_equal … … 35 36 #def test_mpi_sum(): 36 37 38 class MockState(object): 39 def __init__(self, mpi_rank): 40 self.mpi_rank = mpi_rank 41 self.num_processes = 9 42 self.dt = 0.123 43 self.running = True 44 class MockSimulator(object): 45 def __init__(self, mpi_rank): 46 self.state = MockState(mpi_rank) 47 self.recorders = set([]) 48 49 class MockNeoIO(object): 50 filename = "fake_file" 51 write = Mock() 52 53 class MockRecorder(recording.Recorder): 54 _simulator = MockSimulator(mpi_rank=0) 55 37 56 class MockPopulation(object): 38 57 size = 11 … … 41 60 label = "mock population" 42 61 celltype = Mock() 62 annotations = {'knights_say': 'Ni!'} 43 63 def __len__(self): 44 64 return self.size … … 58 78 self.description = None 59 79 self.segments = [Mock()] 80 self.rec_datetime = datetime.now() 60 81 def annotate(self, **annotations): 61 82 pass … … 63 84 def test_Recorder_create(): 64 85 p = MockPopulation() 65 r = recording.Recorder(p)86 r = MockRecorder(p) 66 87 assert_equal(r.population, p) 67 88 assert_equal(r.file, None) … … 70 91 def test_Recorder_invalid_variable(): 71 92 p = MockPopulation() 72 r = recording.Recorder(p)93 r = MockRecorder(p) 73 94 all_ids = (MockID(0, True), MockID(1, False), MockID(2, True), MockID(3, True), MockID(4, False)) 74 95 assert_raises(errors.RecordingError, … … 82 103 def test_record(): 83 104 p = MockPopulation() 84 r = recording.Recorder(p)105 r = MockRecorder(p) 85 106 r._record = Mock() 86 107 assert_equal(r.recorded, defaultdict(set)) … … 101 122 def test_filter_recorded(): 102 123 p = MockPopulation() 103 r = recording.Recorder(p)124 r = MockRecorder(p) 104 125 r._record = Mock() 105 126 all_ids = (MockID(0, True), MockID(1, False), MockID(2, True), MockID(3, True), MockID(4, False)) … … 116 137 def test_get(): 117 138 p = MockPopulation() 118 r = recording.Recorder(p) 119 r._simulator = MockSimulator(mpi_rank=0) 120 fake_data = MockNeoBlock() 121 r._get = Mock(return_value=fake_data) 122 r.get('spikes') 123 assert_equal(fake_data.name, p.label) 124 assert_equal(fake_data.description, p.describe()) 125 126 127 class MockState(object): 128 def __init__(self, mpi_rank): 129 self.mpi_rank = mpi_rank 130 self.dt = 0.123 131 class MockSimulator(object): 132 def __init__(self, mpi_rank): 133 self.state = MockState(mpi_rank) 134 135 class MockNeoIO(object): 136 filename = "fake_file" 137 write = Mock() 139 r = MockRecorder(p) 140 r._get_current_segment = Mock() 141 data = r.get('spikes') 142 assert_equal(data.name, p.label) 143 assert_equal(data.description, p.describe()) 138 144 139 145 def test_write__with_filename__compatible_output__gather__onroot(): 140 146 orig_metadata = recording.Recorder.metadata 141 recording.Recorder.metadata = {'a': 2, 'b':3}147 #recording.Recorder.metadata = {'a': 2, 'b':3} 142 148 p = MockPopulation() 143 r = recording.Recorder(p) 144 r._simulator = MockSimulator(mpi_rank=0) 145 fake_data = MockNeoBlock() 146 r._get = Mock(return_value=fake_data) 149 r = MockRecorder(p) 150 #fake_data = MockNeoBlock() 151 r._get_current_segment = Mock() #return_value=fake_data) 147 152 output_io = MockNeoIO() 148 153 r.write("spikes", file=output_io, gather=True) 149 recording.Recorder.metadata = orig_metadata154 #recording.Recorder.metadata = orig_metadata 150 155 output_io.write.assert_called_with(fake_data) 151 156 152 157 def test_metadata_property(): 153 158 p = MockPopulation() 154 r = recording.Recorder(population=p) 155 r._simulator = MockSimulator(mpi_rank=0) 159 r = MockRecorder(p) 156 160 assert_equal(r.metadata, 157 161 {'first_id': 2454, 'label': 'mock population', 158 162 'dt': 0.123, 'last_id': 2465, 'size': 11, 159 'first_index': 0, 'last_index': 11 })163 'first_index': 0, 'last_index': 11, 'knights_say': 'Ni!'}) 160 164 161 165 -
branches/neo_output/test/unittests/test_simulation_control.py
r1003 r1034 15 15 self.reset_called = False 16 16 self.state = MockState() 17 self.recorders = [] 17 18 def reset(self): 18 19 self.reset_called = True
