X-Git-Url: https://projects.mako.cc/source/rubyvote/blobdiff_plain/edff22dc7bd8517bff039e3346f2a85bf0aed754..44dfdcf546f020f6e5546b28ac85bd722b55afdd:/lib/rubyvote/condorcet.rb diff --git a/lib/rubyvote/condorcet.rb b/lib/rubyvote/condorcet.rb index b0471ec..4dd1745 100644 --- a/lib/rubyvote/condorcet.rb +++ b/lib/rubyvote/condorcet.rb @@ -229,12 +229,15 @@ class CloneproofSSDResult < CondorcetResult candidates = [candidates] unless candidates.class == Array candidates.each do |cand1| candidates.each do |cand2| - candidates.each do |cand3| - if transitive_defeats.include?( [ cand2, cand1 ] ) and - transitive_defeats.include?( [ cand1, cand3 ] ) and - not transitive_defeats.include?( [ cand2, cand3 ] ) and - not cand2 == cand3 - transitive_defeats << [ cand2, cand3 ] + unless cand1 == cand2 + candidates.each do |cand3| + if not cand2 == cand3 and + not cand1 == cand3 and + transitive_defeats.include?( [ cand2, cand1 ] ) and + transitive_defeats.include?( [ cand1, cand3 ] ) and + not transitive_defeats.include?( [ cand2, cand3 ] ) + transitive_defeats << [ cand2, cand3 ] + end end end end