Subversion Repositories Local Hare Voting

Rev

Blame | Last modification | View Log | RSS feed

#!/p/python/python

import os
import random

import parseinput
import tally

def testfile(dirpath, filename):
    print filename + ":",
    filenameCSV = os.path.join(dirpath, filename)
    filenameOut = os.path.splitext(filenameCSV)[0] + ".out"
    result = tallyfile(filenameCSV)
    handleresult(result, filename, filenameOut)

def tallyfile(filenameCSV):
    nWinners, ballots = parseinput.parsefile(filenameCSV)
    random.seed(1)
    return str(tally.dotally(nWinners, ballots)) + "\n"

def handleresult(result, filename, filenameOut):
    if os.path.isfile(filenameOut):
        fOut = open(filenameOut)
        correct = fOut.read()
        if result == correct:
            print "OK"
        else:
            print "***** MISMATCH *****"
    else:
        print "***** Creating output for " + filename + ": " + result,
        fOut = open(filenameOut, "w")
        fOut.write(result)

def main(dir):
    tally.fTrace = 0
    for dirpath, dirnames, filenames in os.walk(dir):
        for filename in filenames:
            if filename.endswith(".csv"):
                testfile(dirpath, filename)

if __name__=="__main__":
    main("tests")