4 require 'rubyvote/election'
5 require 'rubyvote/condorcet'
7 class TestCondorcetVote < Test::Unit::TestCase
10 vote_array = Array.new
11 3.times {vote_array << "ABC".split("")}
12 3.times {vote_array << "CBA".split("")}
13 2.times {vote_array << "BAC".split("")}
15 assert_equal ["B"], PureCondorcetVote.new(vote_array).result.winners[0]
19 vote_array = Array.new
20 5.times {vote_array << "ACBED".split("")}
21 5.times {vote_array << "ADECB".split("")}
22 8.times {vote_array << "BEDAC".split("")}
23 3.times {vote_array << "CABED".split("")}
24 7.times {vote_array << "CAEBD".split("")}
25 2.times {vote_array << "CBADE".split("")}
26 7.times {vote_array << "DCEBA".split("")}
27 8.times {vote_array << "EBADC".split("")}
29 assert_equal "E", CloneproofSSDVote.new(vote_array).result.winners[0]
30 assert_equal [['E'], ['A'], ['C'], ['B'], ['D']],
31 CloneproofSSDVote.new(vote_array).result.get_full_results
35 vote_array = Array.new
36 5.times {vote_array << "ACBD".split("")}
37 2.times {vote_array << "ACDB".split("")}
38 3.times {vote_array << "ADCB".split("")}
39 4.times {vote_array << "BACD".split("")}
40 3.times {vote_array << "CBDA".split("")}
41 3.times {vote_array << "CDBA".split("")}
42 1.times {vote_array << "DACB".split("")}
43 5.times {vote_array << "DBAC".split("")}
44 4.times {vote_array << "DCBA".split("")}
46 assert_equal "D", CloneproofSSDVote.new(vote_array).result.winners[0]
47 assert_equal [['D'], ['A'], ['C'], ['B']],
48 CloneproofSSDVote.new(vote_array).result.get_full_results
52 vote_array = Array.new
53 3.times {vote_array << "ABCD".split("")}
54 2.times {vote_array << "DABC".split("")}
55 2.times {vote_array << "DBCA".split("")}
56 2.times {vote_array << "CBDA".split("")}
58 assert_equal "B", CloneproofSSDVote.new(vote_array).result.winners[0]
59 assert_equal [['B'], ['C'], ['D'], ['A']],
60 CloneproofSSDVote.new(vote_array).result.get_full_results
63 def test_ssd_incomplete_votes
64 vote_array = Array.new
65 3.times {vote_array << "ABCD".split("")}
66 2.times {vote_array << "DABC".split("")}
67 2.times {vote_array << "DBCA".split("")}
68 4.times {vote_array << ["C"]}
69 2.times {vote_array << "DBC".split("")}
71 result = CloneproofSSDVote.new(vote_array).result
72 assert_equal "B", result.winners[0]
73 assert_equal [['B'], ['C'], ['D'], ['A']], result.get_full_results
76 def test_ssd_incomplete_votes_2
77 vote_array = Array.new
78 4.times {vote_array << ["C"]}
79 3.times {vote_array << "ABCD".split("")}
80 2.times {vote_array << "DABC".split("")}
81 2.times {vote_array << "DBCA".split("")}
82 2.times {vote_array << "DBC".split("")}
84 result = CloneproofSSDVote.new(vote_array).result
85 assert_equal "B", result.winners[0]
86 assert_equal [['B'], ['C'], ['D'], ['A']], result.get_full_results