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

ruby-changes:2519

From: ko1@a...
Date: 25 Nov 2007 09:38:45 +0900
Subject: [ruby-changes:2519] akr - Ruby:r14010 (trunk): add more roundtrip tests.

akr	2007-11-25 09:38:33 +0900 (Sun, 25 Nov 2007)

  New Revision: 14010

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

  Log:
    add more roundtrip tests.


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

Index: test/ruby/test_integer.rb
===================================================================
--- test/ruby/test_integer.rb	(revision 14009)
+++ test/ruby/test_integer.rb	(revision 14010)
@@ -569,6 +569,50 @@
     }
   end
 
+  def test_printf_diu
+    VS.reverse_each {|a|
+      s = sprintf("%d", a)
+      b = s.to_i
+      assert_equal(a, b, "sprintf('%d', #{a}) = #{s.inspect}")
+      s = sprintf("%i", a)
+      b = s.to_i
+      assert_equal(a, b, "sprintf('%i', #{a}) = #{s.inspect}")
+      s = sprintf("%u", a)
+      b = s.to_i
+      assert_equal(a, b, "sprintf('%u', #{a}) = #{s.inspect}")
+    }
+  end
+
+  def test_marshal
+    VS.reverse_each {|a|
+      s = Marshal.dump(a)
+      b = Marshal.load(s)
+      assert_equal(a, b, "Marshal.load(Marshal.dump(#{a}))")
+    }
+  end
+
+  def test_pack
+    %w[c C s S s! S! i I l L l! L! q Q].each {|template|
+      size = [0].pack(template).size
+      mask = (1 << (size * 8)) - 1
+      if /[A-Z]/ =~ template
+        min = 0
+        max = (1 << (size * 8))-1
+      else
+        min = -(1 << (size * 8 - 1))
+        max = (1 << (size * 8 - 1)) - 1
+      end
+      VS.reverse_each {|a|
+        s = [a].pack(template)
+        b = s.unpack(template)[0]
+        assert_equal(a & mask, b & mask, "[#{a}].pack(#{template.dump}).unpack(#{template.dump}) & #{mask}")
+        if min <= a && a <= max
+          assert_equal(a, b, "[#{a}].pack(#{template.dump}).unpack(#{template.dump})")
+        end
+      }
+    }
+  end
+
   def test_Integer
     assert_raise(ArgumentError) {Integer("0x-1")}
     assert_raise(ArgumentError) {Integer("-0x-1")}

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

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