end
class PureCondorcetVote < CondorcetVote
- def result
- PureCondorcetResult.new(self)
+ def resultFactory(init)
+ PureCondorcetResult.new(init)
end
end
end
protected
+
def condorcet
votes = @election.votes
candidates = @election.candidates
victors[winner] << loser
end
- winners = @election.candidates.find_all do |candidate|
- victors[candidate].length == @election.candidates.length - 1
+ victory_margin = 1
+ while true
+ winners = @election.candidates.find_all do |candidate|
+ victors[candidate].length == @election.candidates.length - victory_margin
+ end
+ if winners.length > 0
+ @winners = winners
+ return @winners
+ else
+ victory_margin += 1
+ end
end
-
- @winners << winners if winners.length == 1
end
end