from ex_threeway import *


if __name__ == "__main__":
    names = ['plurality','dodgson','borda','approval','stv','even_and_equal','copeland']

    exps = []
    for i in range(0,6):
        for j in range(i+1,6):
            for k in range(j+1,6):
                exps.append([names[i],names[j],names[k]])

    #exps = [['borda','approval','dodgson'],['plurality','approval','dodgson'],['stv','plurality','dodgson'],['borda','dodgson','even_and_equal'],['approval','stv','dodgson'],['plurality','even_and_equal','dodgson'],['approval','even_and_equal','dodgson'],['stv','dodgson','even_and_equal']]

    for e in exps:
        rule1 = e[0]
        rule2 = e[1]
        rule3 = e[2]

        print "*********************************"
        print rule1, rule2, rule3
        
        exp = ex_threeway(rule1, rule2, rule3)
        exp.run_experiment()
        ballot = "experiments/%s_vs_%s_vs_%s.blt" % (rule1, rule2, rule3)

        if rule1 == 'approval':
            r1 = 'Approval Voting'
        if rule1 == 'even_and_equal':
            r1 = 'Size Approval Even and Equal'
        if rule1 == 'plurality':
            r1 = 'Plurality Voting'
        if rule1 == 'borda':
            r1 = 'Borda Count'
        if rule1 == 'stv':
            r1 = 'STV'
        if rule1 == 'copeland':
            r1 = 'Copeland\'s method'
        if rule1 == 'dodgson':
            r1 = 'Dodgson\'s method'
            
        if rule2 == 'approval':
            r2 = 'Approval Voting'
        if rule2 == 'even_and_equal':
            r2 = 'Size Approval Even and Equal'
        if rule2 == 'plurality':
            r2 = 'Plurality Voting'
        if rule2 == 'borda':
            r2 = 'Borda Count'
        if rule2 == 'stv':
            r2 = 'STV'
        if rule2 == 'copeland':
            r2 = 'Copeland\'s method'
        if rule2 == 'dodgson':
            r2 = 'Dodgson\'s method'

        if rule3 == 'approval':
            r3 = 'Approval Voting'
        if rule3 == 'even_and_equal':
            r3 = 'Size Approval Even and Equal'
        if rule3 == 'plurality':
            r3 = 'Plurality Voting'
        if rule3 == 'borda':
            r3 = 'Borda Count'
        if rule3 == 'stv':
            r3 = 'STV'
        if rule3 == 'copeland':
            r3 = 'Copeland\'s method'
        if rule3 == 'dodgson':
            r3 = 'Dodgson\'s method'


        title = "%s vs. %s vs. %s" % (r1, r2, r3)
        html = "experiments/%s_vs_%s_vs_%s.html" % (rule1, rule2, rule3)
        el = election(ballot, title)
        el.outputhtml(html)


