X-Git-Url: https://projects.mako.cc/source/rubyvote/blobdiff_plain/74e5c5f3c50a36d8d8589c243395b9158977f4db..0ef8f53fb812bcc40337a92f9c4d11ab193f73a9:/test/election_test_helper.rb diff --git a/test/election_test_helper.rb b/test/election_test_helper.rb new file mode 100644 index 0000000..abc37cd --- /dev/null +++ b/test/election_test_helper.rb @@ -0,0 +1,29 @@ +$:.unshift(File.dirname(__FILE__) + "/../lib/") + +require 'rubyvote' + +module ElectionTestHelper + def test_winner(expected, result) + puts "\nUsing the #{result.class.to_s.gsub(/Result/,'')} voting method..." + + if result.winner? + if expected.is_a?(Array) && expected.length > 1 # Array is passed to test for a tie! + msg = "There is a tie: %s" % result.winners.join(", ") + + assert_equal(expected.length, result.winners.length, + "Not the correct number of winners!") + assert(expected.all?{|c| result.winners.include?(c)}, + "Tie winners do not match expected!") + else + msg = "There is a single winner: #{result.winners[0]}" + assert_equal(expected, result.winners[0], msg) + end + + else + msg = "There is no winner" + assert_nil(expected, msg) + end + + puts msg + end +end