[前][次][番号順一覧][スレッド一覧]

ruby-changes:2549

From: ko1@a...
Date: 28 Nov 2007 11:45:26 +0900
Subject: [ruby-changes:2549] akr - Ruby:r14040 (trunk): test exceptions.

akr	2007-11-28 11:45:12 +0900 (Wed, 28 Nov 2007)

  New Revision: 14040

  Modified files:
    trunk/test/ruby/test_integer.rb

  Log:
    test exceptions.


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/test/ruby/test_integer.rb?r1=14040&r2=14039

Index: test/ruby/test_integer.rb
===================================================================
--- test/ruby/test_integer.rb	(revision 14039)
+++ test/ruby/test_integer.rb	(revision 14040)
@@ -210,17 +210,20 @@
   def test_divmod
     VS.each {|a|
       VS.each {|b|
-        next if b == 0
-        q, r = a.divmod(b)
-        check_class(q)
-        check_class(r)
-        assert_equal(a, b*q+r)
-        assert(r.abs < b.abs)
-        assert(0 < b ? (0 <= r && r < b) : (b < r && r <= 0))
-        assert_equal(q, a/b)
-        assert_equal(q, a.div(b))
-        assert_equal(r, a%b)
-        assert_equal(r, a.modulo(b))
+        if b == 0
+          assert_raise(ZeroDivisionError) { a.divmod(b) }
+        else
+          q, r = a.divmod(b)
+          check_class(q)
+          check_class(r)
+          assert_equal(a, b*q+r)
+          assert(r.abs < b.abs)
+          assert(0 < b ? (0 <= r && r < b) : (b < r && r <= 0))
+          assert_equal(q, a/b)
+          assert_equal(q, a.div(b))
+          assert_equal(r, a%b)
+          assert_equal(r, a.modulo(b))
+        end
       }
     }
   end
@@ -446,17 +449,20 @@
   def test_remainder
     VS.each {|a|
       VS.each {|b|
-        next if b == 0
-        r = a.remainder(b)
-        check_class(r)
-        if a < 0
-          assert_operator(-b.abs, :<, r, "#{a}.remainder(#{b})")
-          assert_operator(0, :>=, r, "#{a}.remainder(#{b})")
-        elsif 0 < a
-          assert_operator(0, :<=, r, "#{a}.remainder(#{b})")
-          assert_operator(b.abs, :>, r, "#{a}.remainder(#{b})")
+        if b == 0
+          assert_raise(ZeroDivisionError) { a.divmod(b) }
         else
-          assert_equal(0, r, "#{a}.remainder(#{b})")
+          r = a.remainder(b)
+          check_class(r)
+          if a < 0
+            assert_operator(-b.abs, :<, r, "#{a}.remainder(#{b})")
+            assert_operator(0, :>=, r, "#{a}.remainder(#{b})")
+          elsif 0 < a
+            assert_operator(0, :<=, r, "#{a}.remainder(#{b})")
+            assert_operator(b.abs, :>, r, "#{a}.remainder(#{b})")
+          else
+            assert_equal(0, r, "#{a}.remainder(#{b})")
+          end
         end
       }
     }
@@ -616,20 +622,26 @@
   def test_pack_ber
     template = "w"
     VS.reverse_each {|a|
-      next if a < 0
-      s = [a].pack(template)
-      b = s.unpack(template)[0]
-      assert_equal(a, b, "[#{a}].pack(#{template.dump}).unpack(#{template.dump})")
+      if a < 0
+        assert_raise(ArgumentError) { [a].pack(template) }
+      else
+        s = [a].pack(template)
+        b = s.unpack(template)[0]
+        assert_equal(a, b, "[#{a}].pack(#{template.dump}).unpack(#{template.dump})")
+      end
     }
   end
 
   def test_pack_utf8
     template = "U"
     VS.reverse_each {|a|
-      next if a < 0 || 0x7fffffff < a
-      s = [a].pack(template)
-      b = s.unpack(template)[0]
-      assert_equal(a, b, "[#{a}].pack(#{template.dump}).unpack(#{template.dump})")
+      if a < 0 || 0x7fffffff < a
+        assert_raise(RangeError) { [a].pack(template) }
+      else
+        s = [a].pack(template)
+        b = s.unpack(template)[0]
+        assert_equal(a, b, "[#{a}].pack(#{template.dump}).unpack(#{template.dump})")
+      end
     }
   end
 

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧]