def testConvertTupleListToMap(self): tupleList=[] tupleList.append((0,0)) tupleList.append((0,1)) tupleList.append((1,0)) tupleList.append((1,2)) tupleList.append((2,2)) wiringMap=Util.convertTupleListToMap(tupleList) self.assertEqual(3,len(wiringMap)) self.assertEqual(2,len(wiringMap[0])) self.assertEqual(1,len(wiringMap[2]))
def getValidReflectorShuffledWiringCfg(self,sequence=None): if not sequence: sequence=CharIndexMap.getRange() wiringTuples=[] seq=Shuffler.shuffleSeq(sequence,self.random.nextInt()) while len(seq)>0: selectedPair=self.random.sample(seq,2) wiringTuples.append((selectedPair[0],selectedPair[1])) wiringTuples.append((selectedPair[1],selectedPair[0])) seq.remove(selectedPair[0]) seq.remove(selectedPair[1]) result=Util.convertTupleListToMap(wiringTuples) return result
def createWiringCfg(self,fromRange,toRange): wiringTuples=[] if fromRange==toRange: shuffledToSeq=self.getShuffledSequence(toRange) for i in range(0,len(fromRange)): wiringTuples.append((fromRange[i],shuffledToSeq[i])) else: coveredTo=[] for fromIndex in fromRange: mappedTo=self.random.sample(toRange,self.random.nextInt(1,len(toRange))) for m in mappedTo: wiringTuples.append((fromIndex,m)) if m not in coveredTo: coveredTo.append(m) for toIndex in toRange: if toIndex not in coveredTo: mappedFrom=self.random.sample(fromRange,self.random.nextInt(1,len(fromRange))) for m in mappedFrom: wiringTuples.append((m,toIndex)) wiringCfg=Util.convertTupleListToMap(wiringTuples) return wiringCfg