def testGetBestMatchingCell(self): tm = TemporalMemory( connectedPermanence=0.50, minThreshold=1, seed=42 ) connections = tm.connections connections.createSegment(0) connections.createSynapse(0, 23, 0.6) connections.createSynapse(0, 37, 0.4) connections.createSynapse(0, 477, 0.9) connections.createSegment(0) connections.createSynapse(1, 49, 0.9) connections.createSynapse(1, 3, 0.8) connections.createSegment(1) connections.createSynapse(2, 733, 0.7) connections.createSegment(108) connections.createSynapse(3, 486, 0.9) activeSynapsesForSegment = { 0: set([0, 1]), 1: set([3]), 2: set([5]) } self.assertEqual(tm.getBestMatchingCell(connections.cellsForColumn(0), activeSynapsesForSegment, connections), (0, 0)) self.assertEqual(tm.getBestMatchingCell(connections.cellsForColumn(3), # column containing cell 108 activeSynapsesForSegment, connections), (96, None)) # Random cell from column self.assertEqual(tm.getBestMatchingCell(connections.cellsForColumn(999), activeSynapsesForSegment, connections), (31972, None)) # Random cell from column
def testGetBestMatchingCellFewestSegments(self): tm = TemporalMemory(columnDimensions=[2], cellsPerColumn=2, connectedPermanence=0.50, minThreshold=1, seed=42) connections = tm.connections connections.createSegment(0) connections.createSynapse(0, 3, 0.3) activeSynapsesForSegment = set([]) for _ in range(100): # Never pick cell 0, always pick cell 1 (cell, _) = tm.getBestMatchingCell(connections.cellsForColumn(0), activeSynapsesForSegment, connections) self.assertEqual(cell, 1)
def testGetBestMatchingCellFewestSegments(self): tm = TemporalMemory( columnDimensions=[2], cellsPerColumn=2, connectedPermanence=0.50, minThreshold=1, seed=42 ) connections = tm.connections connections.createSegment(0) connections.createSynapse(0, 3, 0.3) activeSynapsesForSegment = set([]) for _ in range(100): # Never pick cell 0, always pick cell 1 (cell, _) = tm.getBestMatchingCell(connections.cellsForColumn(0), activeSynapsesForSegment, connections) self.assertEqual(cell, 1)