diff options
author | shyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-08-15 23:23:39 +0000 |
---|---|---|
committer | shyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-08-15 23:23:39 +0000 |
commit | 6175ca03be6d0d51359f9017123708987d0f5eb7 (patch) | |
tree | ecfcf6e79a21b1d25c3f6f42dd68ea0a14add89c /ruby_1_8_5/test/ruby/test_hash.rb | |
parent | 80a56b248b2e9cfc95622aed98750df05a19f667 (diff) |
add tag v1_8_5_91v1_8_5_91
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_8_5_91@13046 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ruby_1_8_5/test/ruby/test_hash.rb')
-rw-r--r-- | ruby_1_8_5/test/ruby/test_hash.rb | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/ruby_1_8_5/test/ruby/test_hash.rb b/ruby_1_8_5/test/ruby/test_hash.rb new file mode 100644 index 0000000000..5bec012bf8 --- /dev/null +++ b/ruby_1_8_5/test/ruby/test_hash.rb @@ -0,0 +1,74 @@ +require 'test/unit' + +class TestHash < Test::Unit::TestCase + def test_hash + x = {1=>2, 2=>4, 3=>6} + y = {1, 2, 2, 4, 3, 6} + + assert_equal(2, x[1]) + + assert(begin + for k,v in y + raise if k*2 != v + end + true + rescue + false + end) + + assert_equal(3, x.length) + assert(x.has_key?(1)) + assert(x.has_value?(4)) + assert_equal([4,6], x.values_at(2,3)) + assert_equal({1=>2, 2=>4, 3=>6}, x) + + z = y.keys.join(":") + assert_equal("1:2:3", z) + + z = y.values.join(":") + assert_equal("2:4:6", z) + assert_equal(x, y) + + y.shift + assert_equal(2, y.length) + + z = [1,2] + y[z] = 256 + assert_equal(256, y[z]) + + x = Hash.new(0) + x[1] = 1 + assert_equal(1, x[1]) + assert_equal(0, x[2]) + + x = Hash.new([]) + assert_equal([], x[22]) + assert_same(x[22], x[22]) + + x = Hash.new{[]} + assert_equal([], x[22]) + assert_not_same(x[22], x[22]) + + x = Hash.new{|h,k| z = k; h[k] = k*2} + z = 0 + assert_equal(44, x[22]) + assert_equal(22, z) + z = 0 + assert_equal(44, x[22]) + assert_equal(0, z) + x.default = 5 + assert_equal(5, x[23]) + + x = Hash.new + def x.default(k) + $z = k + self[k] = k*2 + end + $z = 0 + assert_equal(44, x[22]) + assert_equal(22, $z) + $z = 0 + assert_equal(44, x[22]) + assert_equal(0, $z) + end +end |