@matrix = voteobj.votes
end
- def list_defeats
+ def victories_and_ties
victors = Array.new
ties = Array.new
candidates = @matrix.keys.sort
protected
def defeats(candidates=nil, votes=nil)
- candidates = @election.candidates unless candidates
- votes = @election.votes unless votes
+ candidates ||= @election.candidates || []
+ # we're assumign that if there are candidates, there must be at
+ # least one vote for them
+ votes ||= @election.votes
defeats = Array.new
- candidates = [candidates] unless candidates.class == Array
candidates.each do |candidate|
candidates.each do |challenger|
next if candidate == challenger
def condorcet
votes = @election.votes
candidates = @election.candidates
- unless votes.length>0 and candidates.length>0
- @winners=[]
- return @winners
+
+ unless votes.length > 0 and candidates.length > 0
+ return @winners=[]
end
+
victors = Hash.new
candidates.each do |candidate|
victors[candidate] = Array.new
def initialize(voteobj=nil)
super(voteobj)
@winners = self.cpssd()
- @winners.delete nil
end
protected
def cpssd
votes = @election.votes
- candidates = *@election.candidates
+ candidates = @election.candidates.dup
def in_schwartz_set?(candidate, candidates, transitive_defeats)
candidates.each do |challenger|