summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-hash-ext/test/hash.rb
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-05-04 12:27:22 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-05-04 12:27:22 +0900
commit4be6f1c79baa548866ec69759d3cbcb28d67569f (patch)
treef8d0be72db26f774df3afe66b749e4c31b4a22b2 /mrbgems/mruby-hash-ext/test/hash.rb
parent8e4d3bb94e869679486ebeaefcc586b4e3ed5cb7 (diff)
parent3e7db4ad271f5e2eebdb92114266d15d21d5cc34 (diff)
downloadmruby-4be6f1c79baa548866ec69759d3cbcb28d67569f.tar.gz
mruby-4be6f1c79baa548866ec69759d3cbcb28d67569f.zip
Merge pull request #2181 from suzukaze/add-hash_delete_if
Add Hash#delete_if
Diffstat (limited to 'mrbgems/mruby-hash-ext/test/hash.rb')
-rw-r--r--mrbgems/mruby-hash-ext/test/hash.rb34
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