diff options
| author | Jun Hiroe <[email protected]> | 2014-05-04 00:35:18 +0900 |
|---|---|---|
| committer | Jun Hiroe <[email protected]> | 2014-05-04 00:46:36 +0900 |
| commit | 3e7db4ad271f5e2eebdb92114266d15d21d5cc34 (patch) | |
| tree | f8d0be72db26f774df3afe66b749e4c31b4a22b2 /mrbgems/mruby-hash-ext/test | |
| parent | 8e4d3bb94e869679486ebeaefcc586b4e3ed5cb7 (diff) | |
| download | mruby-3e7db4ad271f5e2eebdb92114266d15d21d5cc34.tar.gz mruby-3e7db4ad271f5e2eebdb92114266d15d21d5cc34.zip | |
Add Hash#delete_if
Diffstat (limited to 'mrbgems/mruby-hash-ext/test')
| -rw-r--r-- | mrbgems/mruby-hash-ext/test/hash.rb | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/mrbgems/mruby-hash-ext/test/hash.rb b/mrbgems/mruby-hash-ext/test/hash.rb index 83a064811..4c7dbb217 100644 --- a/mrbgems/mruby-hash-ext/test/hash.rb +++ b/mrbgems/mruby-hash-ext/test/hash.rb @@ -39,3 +39,37 @@ assert('Hash#fetch') do assert_kind_of(StandardError, e); end end + +assert("Hash#delete_if") do + base = { 1 => 'one', 2 => false, true => 'true', 'cat' => 99 } + h1 = { 1 => 'one', 2 => false, true => 'true' } + h2 = { 2 => false, 'cat' => 99 } + h3 = { 2 => false } + + h = base.dup + assert_equal(h, h.delete_if { false }) + assert_equal({}, h.delete_if { true }) + + h = base.dup + assert_equal(h1, h.delete_if {|k,v| k.instance_of?(String) }) + assert_equal(h1, h) + + h = base.dup + assert_equal(h2, h.delete_if {|k,v| v.instance_of?(String) }) + assert_equal(h2, h) + + h = base.dup + assert_equal(h3, h.delete_if {|k,v| v }) + assert_equal(h3, h) + + h = base.dup + n = 0 + h.delete_if {|*a| + n += 1 + assert_equal(2, a.size) + assert_equal(base[a[0]], a[1]) + h.shift + true + } + assert_equal(base.size, n) +end |
