summaryrefslogtreecommitdiff
path: root/ruby
diff options
context:
space:
mode:
authorfrsyuki <frsyuki@5a5092ae-2292-43ba-b2d5-dcab9c1a2731>2009-02-15 09:10:00 +0000
committerfrsyuki <frsyuki@5a5092ae-2292-43ba-b2d5-dcab9c1a2731>2009-02-15 09:10:00 +0000
commit15837bc3322b6f2fd6191187f4754f7d65c786a4 (patch)
tree48fb30e8743e55367a4c2069139dae62a86354f8 /ruby
parent512e7600f4977e7d4369af5b0d0f0c540427833a (diff)
downloadmsgpack-python-15837bc3322b6f2fd6191187f4754f7d65c786a4.tar.gz
add ruby/test_case.rb
git-svn-id: file:///Users/frsyuki/project/msgpack-git/svn/x@87 5a5092ae-2292-43ba-b2d5-dcab9c1a2731
Diffstat (limited to 'ruby')
-rw-r--r--ruby/test_case.rb142
1 files changed, 142 insertions, 0 deletions
diff --git a/ruby/test_case.rb b/ruby/test_case.rb
new file mode 100644
index 0000000..af6d160
--- /dev/null
+++ b/ruby/test_case.rb
@@ -0,0 +1,142 @@
+require 'test/unit'
+require 'msgpack'
+
+class MessagePackTestFormat < Test::Unit::TestCase
+ def self.it(name, &block)
+ define_method("test_#{name}", &block)
+ end
+
+ it "nil" do
+ check 1, nil
+ end
+
+ it "true" do
+ check 1, true
+ end
+
+ it "false" do
+ check 1, false
+ end
+
+ it "zero" do
+ check 1, 0
+ end
+
+ it "positive fixnum" do
+ check 1, 1
+ check 1, (1<<6)
+ check 1, (1<<7)-1
+ end
+
+ it "positive int 8" do
+ check 1, -1
+ check 2, (1<<7)
+ check 2, (1<<8)-1
+ end
+
+ it "positive int 16" do
+ check 3, (1<<8)
+ check 3, (1<<16)-1
+ end
+
+ it "positive int 32" do
+ check 5, (1<<16)
+ check 5, (1<<32)-1
+ end
+
+ it "positive int 64" do
+ check 9, (1<<32)
+ check 9, (1<<64)-1
+ end
+
+ it "negative fixnum" do
+ check 1, -1
+ check 1, -((1<<5)-1)
+ check 1, -(1<<5)
+ end
+
+ it "negative int 8" do
+ check 2, -((1<<5)+1)
+ check 2, -(1<<7)
+ end
+
+ it "negative int 16" do
+ check 3, -((1<<7)+1)
+ check 3, -(1<<15)
+ end
+
+ it "negative int 32" do
+ check 5, -((1<<15)+1)
+ check 5, -(1<<31)
+ end
+
+ it "negative int 64" do
+ check 9, -((1<<31)+1)
+ check 9, -(1<<63)
+ end
+
+ it "fixraw" do
+ check_raw 1, 0
+ check_raw 1, (1<<5)-1
+ end
+
+ it "raw 16" do
+ check_raw 3, (1<<5)
+ check_raw 3, (1<<16)-1
+ end
+
+ it "raw 32" do
+ check_raw 5, (1<<16)
+ #check_raw 5, (1<<32)-1 # memory error
+ end
+
+ it "fixarray" do
+ check_array 1, 0
+ check_array 1, (1<<4)-1
+ end
+
+ it "array 16" do
+ check_array 3, (1<<4)
+ check_array 3, (1<<16)-1
+ end
+
+ it "array 32" do
+ check_array 5, (1<<16)
+ #check_array 5, (1<<32)-1 # memory error
+ end
+
+# it "fixmap" do
+# check_map 1, 0
+# check_map 1, (1<<4)-1
+# end
+#
+# it "map 16" do
+# check_map 3, (1<<4)
+# check_map 3, (1<<16)-1
+# end
+#
+# it "map 32" do
+# check_map 5, (1<<16)
+# #check_map 5, (1<<32)-1 # memory error
+# end
+
+ private
+ def check(len, obj)
+ v = obj.to_msgpack
+ assert_equal(v.length, len)
+ assert_equal(MessagePack.unpack(v), obj)
+ end
+
+ def check_raw(overhead, num)
+ check num+overhead, " "*num
+ end
+
+ def check_array(overhead, num)
+ check num+overhead, Array.new(num)
+ end
+
+ def check_map(overhead, num)
+ # FIXME
+ end
+end
+