Subversion Repositories Local Hare Voting

Rev

Rev 57 | Rev 61 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
15 jtkorb 1
#!/p/python/python
2
 
3
import os
4
import unittest
5
import random
6
 
54 jtkorb 7
import tally
15 jtkorb 8
 
9
class ModTest(unittest.TestCase):
10
    def testNormalCase(self):
21 jtkorb 11
        self.assertEqual(1, 1)
15 jtkorb 12
 
54 jtkorb 13
    def testUniverse(self):
14
	x = tally.Universe(1.0, 3, 100, quota=5)
15
	self.assertEqual(x.p, 1.0)
16
	self.assertEqual(x.id, 1)
17
	self.assertEqual(x.nBallots, 100)
18
	self.assertEqual(x.quota, 5)
19
	self.assertEqual(x.winners, [])
57 jtkorb 20
 
21
	self.assertEqual(x.forkPendingWinners([5,1,2,3]), 5)
22
	self.assertEqual(x.p, 1.0/4)
23
	self.assertEqual(len(tally.Universe.pendingUniverses), 3)
24
 
25
	self.assertEqual(x.forkPendingLosers(["A",1,2,3,4,5]), "A")
26
	self.assertEqual(x.p, 1.0/4.0/6)
27
	self.assertEqual(len(tally.Universe.pendingUniverses), 8)
54 jtkorb 28
 
57 jtkorb 29
	self.assertEqual(x.forkPendingRedist(["A"]), "A")
30
	self.assertRaises(ZeroDivisionError, x.forkPendingRedist, [])
31
 
32
    def testCombinations(self):
33
	l = ["A", "B", "C", "D", "E"]
34
	self.doCombination(l, 2, 10)
35
	self.doCombination(l, 3, 10)
36
	self.doCombination(l, 4, 5)
37
	self.doCombination(l, 5, 1)
38
 
39
    def doCombination(self, l, n, t):
40
	c = 0
41
	for i in tally.combinations(l, n):
42
	    self.assertEqual(len(i), n)
43
	    # print i
44
	    c += 1
45
	self.assertEqual(c, t)
46
 
15 jtkorb 47
if __name__=="__main__":
48
    unittest.main()