예제 #1
0
 def test_majority(self):
     ballots = [['Bluesy', 'Slice', 'Awesome', 'Mysterious'],
                ['Bluesy', 'Slice', 'Awesome'],
                ['Bluesy', 'Slice', 'Awesome'],
                ['Bluesy', 'Slice', 'Awesome', 'Mysterious']]
     winners = irv.run_irv(ballots)
     self.assertSetEqual(set(winners), set(['Bluesy']))
예제 #2
0
 def test_majority(self):
     ballots = [['Bluesy', 'Slice', 'Awesome', 'Mysterious'],
                ['Bluesy', 'Slice', 'Awesome'],
                ['Bluesy', 'Slice', 'Awesome'],
                ['Bluesy', 'Slice', 'Awesome', 'Mysterious']]
     winners = irv.run_irv(ballots)
     self.assertSetEqual(set(winners), set(['Bluesy']))
예제 #3
0
 def test_tie(self):
     ballots = [['Bluesy', 'Slice', 'Awesome'],
                ['Bluesy', 'Awesome', 'Slice'],
                ['Slice', 'Awesome', 'Bluesy'],
                ['Slice', 'Awesome', 'Bluesy']]
     # Awesome should get eliminated, but that still leaves a tie
     winners = irv.run_irv(ballots)
     self.assertSetEqual(set(winners), set(['Slice', 'Bluesy']))
예제 #4
0
 def test_tie(self):
     ballots = [['Bluesy', 'Slice', 'Awesome'],
                ['Bluesy', 'Awesome', 'Slice'],
                ['Slice', 'Awesome', 'Bluesy'],
                ['Slice', 'Awesome', 'Bluesy']]
     # Awesome should get eliminated, but that still leaves a tie
     winners = irv.run_irv(ballots)
     self.assertSetEqual(set(winners), set(['Slice', 'Bluesy']))
예제 #5
0
 def test_tie_3(self):
     ballots = [['Awesome', 'Bluesy', 'Slice'],
                ['Awesome', 'Slice', 'Bluesy'],
                ['Slice', 'Bluesy', 'Awesome'],
                ['Slice', 'Awesome', 'Bluesy'],
                ['Bluesy', 'Slice', 'Awesome'],
                ['Bluesy', 'Awesome', 'Slice']]
     winners = irv.run_irv(ballots)
     self.assertSetEqual(set(winners), set(['Awesome', 'Bluesy', 'Slice']))
예제 #6
0
 def test_tie_3(self):
     ballots = [['Awesome', 'Bluesy', 'Slice'],
                ['Awesome', 'Slice', 'Bluesy'],
                ['Slice', 'Bluesy', 'Awesome'],
                ['Slice', 'Awesome', 'Bluesy'],
                ['Bluesy', 'Slice', 'Awesome'],
                ['Bluesy', 'Awesome', 'Slice']]
     winners = irv.run_irv(ballots)
     self.assertSetEqual(set(winners), set(['Awesome', 'Bluesy', 'Slice']))
예제 #7
0
 def test_eliminate_loser(self):
     ballots = [['Slice', 'Bluesy', 'Awesome'],
                ['Bluesy', 'Slice', 'Awesome'],
                ['Bluesy', 'Slice', 'Awesome'],
                ['Bluesy', 'Slice', 'Awesome'],
                ['Awesome', 'Slice', 'Bluesy'],
                ['Awesome', 'Slice', 'Bluesy']]
     winners = irv.run_irv(ballots)
     self.assertSetEqual(set(winners), set(['Bluesy']))
     for ballot in ballots:
         self.assertNotIn('Slice', ballot)
예제 #8
0
 def test_eliminate_loser(self):
     ballots = [['Slice', 'Bluesy', 'Awesome'],
                ['Bluesy', 'Slice', 'Awesome'],
                ['Bluesy', 'Slice', 'Awesome'],
                ['Bluesy', 'Slice', 'Awesome'],
                ['Awesome', 'Slice', 'Bluesy'],
                ['Awesome', 'Slice', 'Bluesy']]
     winners = irv.run_irv(ballots)
     self.assertSetEqual(set(winners), set(['Bluesy']))
     for ballot in ballots:
         self.assertNotIn('Slice', ballot)
예제 #9
0
 def test_single_ballot(self):
     ballots = [['Slice', 'Sneaky']]
     winners = irv.run_irv(ballots)
     self.assertSetEqual(set(winners), set(['Slice']))
예제 #10
0
 def test_no_majority(self):
     ballots = [['Slice', 'Sneaky'],
                ['Sneaky', 'Slice']]
     winners = irv.run_irv(ballots)
     self.assertSetEqual(set(winners), set(['Slice', 'Sneaky']))
예제 #11
0
 def test_empty(self):
     ballots = []
     winners = irv.run_irv(ballots)
     self.assertEqual(winners, [])
예제 #12
0
 def test_single_ballot(self):
     ballots = [['Slice', 'Sneaky']]
     winners = irv.run_irv(ballots)
     self.assertSetEqual(set(winners), set(['Slice']))
예제 #13
0
 def test_no_majority(self):
     ballots = [['Slice', 'Sneaky'], ['Sneaky', 'Slice']]
     winners = irv.run_irv(ballots)
     self.assertSetEqual(set(winners), set(['Slice', 'Sneaky']))
예제 #14
0
 def test_empty(self):
     ballots = []
     winners = irv.run_irv(ballots)
     self.assertEqual(winners, [])