diff options
author | nahi <nahi@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-09-04 16:18:59 +0000 |
---|---|---|
committer | nahi <nahi@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-09-04 16:18:59 +0000 |
commit | aaf5d9c03cd41818edb34a154ac570b7fe61687c (patch) | |
tree | 5bc96fa0c702404154d3ba936276873cc7cc242f /test/ruby/test_hash.rb | |
parent | 822a72b8ee2752051e11b3b62fc6c5cd21c9409e (diff) | |
download | ruby-aaf5d9c03cd41818edb34a154ac570b7fe61687c.tar.gz |
* test/ruby: tests for ruby itself.
* test/ruby/test_*.rb: split sample/test.rb into 28 test/unit testcases. some
tests could not be translates... search '!!' mark to see it.
* test/csv/test_csv.rb: should require 'csv', not '../lib/csv'. test runner
should set load path correctly.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4498 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/ruby/test_hash.rb')
-rw-r--r-- | test/ruby/test_hash.rb | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/test/ruby/test_hash.rb b/test/ruby/test_hash.rb new file mode 100644 index 0000000000..d759c7cd4b --- /dev/null +++ b/test/ruby/test_hash.rb @@ -0,0 +1,76 @@ +require 'test/unit' + +$KCODE = 'none' + +class TestHash < Test::Unit::TestCase + def test_hash + $x = {1=>2, 2=>4, 3=>6} + $y = {1, 2, 2, 4, 3, 6} + + assert($x[1] == 2) + + assert(begin + for k,v in $y + raise if k*2 != v + end + true + rescue + false + end) + + assert($x.length == 3) + assert($x.has_key?(1)) + assert($x.has_value?(4)) + assert($x.values_at(2,3) == [4,6]) + assert($x == {1=>2, 2=>4, 3=>6}) + + $z = $y.keys.join(":") + assert($z == "1:2:3") + + $z = $y.values.join(":") + assert($z == "2:4:6") + assert($x == $y) + + $y.shift + assert($y.length == 2) + + $z = [1,2] + $y[$z] = 256 + assert($y[$z] == 256) + + $x = Hash.new(0) + $x[1] = 1 + assert($x[1] == 1) + assert($x[2] == 0) + + $x = Hash.new([]) + assert($x[22] == []) + assert($x[22].equal?($x[22])) + + $x = Hash.new{[]} + assert($x[22] == []) + assert(!$x[22].equal?($x[22])) + + $x = Hash.new{|h,k| $z = k; h[k] = k*2} + $z = 0 + assert($x[22] == 44) + assert($z == 22) + $z = 0 + assert($x[22] == 44) + assert($z == 0) + $x.default = 5 + assert($x[23] == 5) + + $x = Hash.new + def $x.default(k) + $z = k + self[k] = k*2 + end + $z = 0 + assert($x[22] == 44) + assert($z == 22) + $z = 0 + assert($x[22] == 44) + assert($z == 0) + end +end |