* Entire election aborts with InvalidVoteError when an invalid vote object is passed in.
[rubyvote] / test / election_test.rb
index b182e2d7619d63b46c277990b4f02694de151a67..7675e58a01c8eb1fe4a254d57f6204062dc27619 100644 (file)
@@ -1,18 +1,26 @@
-#!/usr/bin/ruby
+#!/usr/bin/ruby -Ilib
 
 require 'test/unit'
 
 require 'test/unit'
-require 'election_test_helper'
+require 'rubyvote/election'
 
 class TestElectionVote < Test::Unit::TestCase
 
 class TestElectionVote < Test::Unit::TestCase
-  include ElectionTestHelper
 
   def test_plurality
     vote_array = "ABCABCABCCCBBAAABABABCCCCCCCCCCCCCA".split("")
 
 
   def test_plurality
     vote_array = "ABCABCABCCCBBAAABABABCCCCCCCCCCCCCA".split("")
 
-    test_winner( "C", PluralityVote.new(vote_array).result )
+    assert_equal( "C", PluralityVote.new(vote_array).result.winners[0] )
   end
 
   end
 
+  def test_plurality_nonstring
+    vote_array = [1,2,3,1,1,1,2,3]
+    assert_equal( 1, PluralityVote.new(vote_array).result.winners[0] )
+  end
 
 
+  def test_invalid_voteobj
+    vote_array = [1,2,nil,1]
+    assert_raise(InvalidVoteError) { PluralityVote.new(vote_array).result.winners[0] }
+  end
+  
   def test_approval
     vote_array = Array.new
     10.times {vote_array << "AB".split("")}
   def test_approval
     vote_array = Array.new
     10.times {vote_array << "AB".split("")}
@@ -20,7 +28,7 @@ class TestElectionVote < Test::Unit::TestCase
     11.times {vote_array << "AC".split("")}
     5.times {vote_array << "A".split("")}
 
     11.times {vote_array << "AC".split("")}
     5.times {vote_array << "A".split("")}
 
-    test_winner( "A", ApprovalVote.new(vote_array).result )
+    assert_equal( "A", ApprovalVote.new(vote_array).result.winners[0] )
   end
 end
 
   end
 end
 

Benjamin Mako Hill || Want to submit a patch?