Skip to content

STV dies with a tie #21

Description

@andymckay
Traceback (most recent call last):
  File "test.py", line 28, in <module>
    pprint(STV(counts).as_dict())
  File "/Users/andy/sandboxes/dsf/python-vote-core-20120423.0/pyvotecore/stv.py", line 30, in __init__
    super(STV, self).__init__(ballots, tie_breaker=tie_breaker, required_winners=required_winners)
  File "/Users/andy/sandboxes/dsf/python-vote-core-20120423.0/pyvotecore/abstract_classes.py", line 76, in __init__
    super(MultipleWinnerVotingSystem, self).__init__(ballots, tie_breaker)
  File "/Users/andy/sandboxes/dsf/python-vote-core-20120423.0/pyvotecore/abstract_classes.py", line 59, in __init__
    super(FixedWinnerVotingSystem, self).__init__(ballots, tie_breaker)
  File "/Users/andy/sandboxes/dsf/python-vote-core-20120423.0/pyvotecore/abstract_classes.py", line 36, in __init__
    self.calculate_results()
  File "/Users/andy/sandboxes/dsf/python-vote-core-20120423.0/pyvotecore/stv.py", line 73, in calculate_results
    if ballot["ballot"][0] in round["winners"]:
IndexError: list index out of range

I'm trying to reproduce this with a simple data set and not succeeding yet. Our dataset goes through a few rounds and would get to a point like this:

            {'loser': 'F',
             'tallies': {'C': 6.0, 'F': 3.0, 'I': 5.0, 'K': 8.0}},
            {'loser': 'I', 'tallies': {'C': 8.0, 'I': 5.0, 'K': 9.0}},
            {'loser': 'K',
             'tallies': {'C': 11.0, 'K': 11.0},
             'tied_losers': set(['C', 'K'])},

This is our current data set:

[{'ballot': ['K'], 'count': 1},
 {'ballot': ['K', 'H', 'I', 'C', 'G', 'D', 'E', 'F', 'J'], 'count': 1},
 {'ballot': ['C', 'E', 'J', 'K', 'F', 'H', 'I', 'G', 'D'], 'count': 1},
 {'ballot': ['K', 'H', 'I', 'F', 'G', 'D', 'J', 'E'], 'count': 1},
 {'ballot': ['C', 'K', 'E', 'I', 'G', 'H', 'F', 'J', 'D'], 'count': 1},
 {'ballot': ['K', 'I', 'H', 'F', 'G', 'E', 'D', 'J', 'C'], 'count': 1},
 {'ballot': ['K', 'H', 'I', 'D', 'C', 'G', 'F', 'E', 'J'], 'count': 1},
 {'ballot': ['K', 'I', 'H'], 'count': 1},
 {'ballot': ['I', 'F', 'H', 'C'], 'count': 1},
 {'ballot': ['C', 'K', 'F'], 'count': 1},
 {'ballot': ['H', 'I', 'C', 'E', 'G', 'F', 'D', 'J', 'K'], 'count': 1},
 {'ballot': ['K', 'H', 'I', 'F', 'E', 'C', 'D', 'G', 'J'], 'count': 1},
 {'ballot': ['F', 'C', 'I', 'K', 'D', 'G', 'J', 'E', 'H'], 'count': 1},
 {'ballot': ['F', 'K', 'I', 'C', 'H', 'D', 'G', 'E', 'J'], 'count': 1},
 {'ballot': ['E', 'F', 'C', 'H', 'I', 'D', 'G', 'J', 'K'], 'count': 1},
 {'ballot': ['I', 'H', 'K', 'F', 'G', 'D', 'C', 'E', 'J'], 'count': 1},
 {'ballot': ['C', 'H', 'I', 'J', 'K', 'G', 'F', 'E', 'D'], 'count': 1},
 {'ballot': ['J', 'C', 'H', 'I', 'K', 'G', 'F', 'D', 'E'], 'count': 1},
 {'ballot': ['K', 'C', 'I', 'H', 'J', 'G', 'F', 'D', 'E'], 'count': 1},
 {'ballot': ['C', 'K', 'J'], 'count': 1},
 {'ballot': ['I', 'C', 'H', 'F', 'G', 'K', 'J', 'D', 'E'], 'count': 1},
 {'ballot': ['H', 'I', 'K', 'F', 'G', 'C', 'J', 'E', 'D'], 'count': 1}]

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions