| 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()
|