def testCreateSegment(self): connections = Connections(1024) segment1 = connections.createSegment(10) self.assertEqual(segment1.cell, 10) segment2 = connections.createSegment(10) self.assertEqual(segment2.cell, 10) self.assertEqual([segment1, segment2], list(connections.segmentsForCell(10)))
def testCreateSegment(self): connections = Connections(1024) segment1 = connections.createSegment(10) self.assertEqual(segment1.cell, 10) segment2 = connections.createSegment(10) self.assertEqual(segment2.cell, 10) self.assertEqual([segment1, segment2], list(connections.segmentsForCell(10)))
def testCreateSegmentReuse(self): connections = Connections(1024, 2) segment1 = connections.createSegment(42) connections.createSynapse(segment1, 1, .5) connections.createSynapse(segment1, 2, .5) # Let some time pass. connections.startNewIteration() connections.startNewIteration() connections.startNewIteration() # Create a segment with 3 synapse. segment2 = connections.createSegment(42) connections.createSynapse(segment2, 1, .5) connections.createSynapse(segment2, 2, .5) connections.createSynapse(segment2, 3, .5) connections.startNewIteration() # Give the first segment some activity. connections.recordSegmentActivity(segment1) # Create a new segment with 1 synapse. segment3 = connections.createSegment(42) connections.createSynapse(segment3, 1, .5) segments = connections.segmentsForCell(42) self.assertEqual(2, len(segments)) # Verify first segment is still there with the same synapses. self.assertEqual( set([1, 2]), set(synapse.presynapticCell for synapse in connections.synapsesForSegment(segments[0]))) # Verify second segment has been replaced. self.assertEqual( set([1]), set(synapse.presynapticCell for synapse in connections.synapsesForSegment(segments[1]))) # Verify the flatIdxs were properly reused. self.assertLess(segment1.flatIdx, 2) self.assertLess(segment3.flatIdx, 2) self.assertTrue( segment1 is connections.segmentForFlatIdx(segment1.flatIdx)) self.assertTrue( segment3 is connections.segmentForFlatIdx(segment3.flatIdx))
def testCreateSegmentReuse(self): connections = Connections(1024, 2) segment1 = connections.createSegment(42) connections.createSynapse(segment1, 1, .5) connections.createSynapse(segment1, 2, .5) # Let some time pass. connections.startNewIteration() connections.startNewIteration() connections.startNewIteration() # Create a segment with 3 synapse. segment2 = connections.createSegment(42) connections.createSynapse(segment2, 1, .5) connections.createSynapse(segment2, 2, .5) connections.createSynapse(segment2, 3, .5) connections.startNewIteration() # Give the first segment some activity. connections.recordSegmentActivity(segment1) # Create a new segment with 1 synapse. segment3 = connections.createSegment(42) connections.createSynapse(segment3, 1, .5) segments = connections.segmentsForCell(42) self.assertEqual(2, len(segments)) # Verify first segment is still there with the same synapses. self.assertEqual(set([1, 2]), set(synapse.presynapticCell for synapse in connections.synapsesForSegment(segments[0]))) # Verify second segment has been replaced. self.assertEqual(set([1]), set(synapse.presynapticCell for synapse in connections.synapsesForSegment(segments[1]))) # Verify the flatIdxs were properly reused. self.assertLess(segment1.flatIdx, 2) self.assertLess(segment3.flatIdx, 2) self.assertTrue(segment1 is connections.segmentForFlatIdx(segment1.flatIdx)) self.assertTrue(segment3 is connections.segmentForFlatIdx(segment3.flatIdx))