def buildSortedBinList(passedDictToBeSorted,passedTotalArea, passedMaxNumberOfWords, passedIsAllWords, passedAddToSize): sortedList = sorted(passedDictToBeSorted.items(), key=itemgetter(1), reverse=True) for keyWord, numberOfTimes in sortedList: #print "word:" + keyWord + " number:" + str(numberOfTimes) + " " + ('.' * numberOfTimes) #handle the bin packing algorithm # sortedBlockList = [] totalArea = passedTotalArea #the number of words we are interested in seeing # numberOfWords = passedMaxNumberOfWords wordsCounted = 0 isAllWords = passedIsAllWords #area additive for size # addToSize = passedAddToSize #build sorted list # for keyWord, numberOfTimes in sortedList: if(passedIsAllWords): blockObj = blockObject.blockObject(numberOfTimes+addToSize, numberOfTimes+addToSize) blockObj.word = keyWord #blockObj.story = passedWordSource; sortedBlockList.append(blockObj) else: if(wordsCounted <= numberOfWords): wordsCounted += 1 #print "words counted" #print wordsCounted blockObj = blockObject.blockObject(numberOfTimes+addToSize, numberOfTimes+addToSize) blockObj.word = keyWord #blockObj.story = passedWordSource; sortedBlockList.append(blockObj) return sortedBlockList
#!/usr/bin/python import binPacker import binPackerObject import blockObject from Tkinter import * from random import randint #this is the test script for the binPacker and block object # block1 = blockObject.blockObject(20, 20) block2 = blockObject.blockObject(20, 20) block3 = blockObject.blockObject(20, 20) block4 = blockObject.blockObject(20, 20) print '=======================================================' print 'block object test' print block1.width print block1.height print '=======================================================' print '=======================================================' print 'binPacker object test' binPackObj1 = binPackerObject.binPackerObject(1, 5, 200, 300) binPackObj2 = binPackerObject.binPackerObject(2, 5, 200, 300) binPackObj3 = binPackerObject.binPackerObject(3, 5, 200, 300) binPackObj1.left = binPackObj2 binPackObj1.down = binPackObj3