Add testcases for calling results to empty votes.
[rubyvote] / test / irv_test.rb
index 640824c42e5f6ac431b2a0f050624e0bcc5c6944..fa05dc99bd62ebef470826eec4bad690a1b6d94b 100644 (file)
@@ -1,11 +1,16 @@
-#!/usr/bin/ruby
+#!/usr/bin/ruby -Ilib
 
 require 'test/unit'
-require 'election_test_helper'
+require 'rubyvote/election'
+require 'rubyvote/irv'
 
 class TestRunoffVote < Test::Unit::TestCase
-  include ElectionTestHelper
 
+  def test_irv_empty
+    vote_array = Array.new
+    assert_nil InstantRunoffVote.new(vote_array).result.winners[0]
+  end
+  
   def test_irv
     vote_array = Array.new
     142.times {vote_array << "ABCD".split("")}
@@ -13,7 +18,7 @@ class TestRunoffVote < Test::Unit::TestCase
     15.times {vote_array << "CDBA".split("")}
     17.times {vote_array << "DCBA".split("")}
 
-    test_winner( "A", InstantRunoffVote.new(vote_array).result )
+    assert_equal( "A", InstantRunoffVote.new(vote_array).result.winners[0] )
   end
 
   def test_irv2
@@ -23,7 +28,7 @@ class TestRunoffVote < Test::Unit::TestCase
     15.times {vote_array << "CDBA".split("")}
     17.times {vote_array << "DCBA".split("")}
 
-    test_winner( "D", InstantRunoffVote.new(vote_array).result )
+    assert_equal( "D", InstantRunoffVote.new(vote_array).result.winners[0] )
   end
 
   def test_irv3
@@ -48,9 +53,14 @@ class TestRunoffVote < Test::Unit::TestCase
     39.times {vote_array << "DCAB".split("")}
     12.times {vote_array << "DCBA".split("")}
 
-    test_winner( "C", InstantRunoffVote.new(vote_array).result )
+    assert_equal( "C", InstantRunoffVote.new(vote_array).result.winners[0] )
   end
-
+  
+  def test_irv_logic_empty
+    vote_array = Array.new
+    assert_nil InstantRunoffLogicVote.new(vote_array).result.winners[0]
+  end
+  
   def test_irv_logic1
     vote_array = Array.new
     42.times {vote_array << "ABCD".split("")}
@@ -58,7 +68,7 @@ class TestRunoffVote < Test::Unit::TestCase
     15.times {vote_array << "CDBA".split("")}
     15.times {vote_array << "DCBA".split("")}
 
-    test_winner ( "B", InstantRunoffLogicVote.new(vote_array).result )
+    assert_equal( "B", InstantRunoffLogicVote.new(vote_array).result.winners[0] )
   end
   ###TODO: test all the other variants
 end

Benjamin Mako Hill || Want to submit a patch?