from candidates import *
from voters import *
from plurality import *
from borda import *
from copeland import *
from approval import *
from stv import *
from election import *
from voter_permutations import *
from voter_distr import * 
from aux import *
from ex_pairwise import *
from ex_threeway import *
from dodgson import *


if __name__ == "__main__":
    #c = candidates(['Dylan','Cash','Jagger','Gainsbourg'])
    #c = candidates(None, 3) #cands, nu. cands
    #vs = voters(c, 25, None) #cands, nu. voters, votes
    #vs.output_ballots('ballots/stv.blt')
    #v = voters.parser('ballots/stv.blt')
    #el = election('ballots/stv.blt', 'the Glass Family', ['Dylan','Cash','Jagger','Gainsbourg'])
    #el.outputhtml('ballots/stv.html')

    #c0 = 0
    #for voter in v.votes:
    #    if voter.ballot == ['C0','C1','C2']:
    #        c0 += 1
    #print c0
    #vs.output_ballots() #will write to file specified in voters.py
    #print vs
    #print
    #v = voters.parser('experiments/even_and_equal_vs_stv.blt') #same as the file in output_ballots
    #v.add_ballots('test3.blt')
    #print v
#    p = plurality(v)
#    print p
#    print    
#    b = borda(v)
#    print b
#    print
#    a = approval(v)
#    print a
#    print 
#    e = approval(v, 'even_and_equal')
#    print e
#    print 
#    co = stv(v)
#    co.score()
#    print co.had_scores
#    print co
#    print
#    st = stv(v)
#    print st
    #el = election('ballots/nurmi.blt', 'Paradox', ['a','b','c','d','e'])
    #el.outputhtml()

    #q = voter_permutations(c)
    #q.generate_voters()

    #s = combinations_w_repetition(10,6)
    #a = s.generate_set()
    #print a
    #print len(a)
    vd = voter_distr(3,3)
    a = vd.generate(3,3)
    print a
    #pw = ex_threeway('approval','plurality','borda')
    #pw.run_experiment()
    #el = election('experiments/approval_vs_plurality_vs_borda.blt', 'Approval vs. Plurality vs. Borda')
    #el.outputhtml('experiments/approval_vs_plurality_vs_borda.html')
    #c = candidates(None, 3) #cands, nu. cands
    #vs = voters(c, 10, None) #cands, nu. voters, votes
    #vs.output_ballots()
    #v = voters.parser('ballots/copelan.blt')
    #d = dodgson(v)
    #print d


