summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-hash-ext/test/hash.rb
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2017-07-14 15:13:41 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2017-07-14 15:13:41 +0900
commitde3edcc17044cfb9e85593236f29424eae46b098 (patch)
tree706c283928a03867f06b5be4a6d5fc9004121673 /mrbgems/mruby-hash-ext/test/hash.rb
parentbad807e7f072553b8e055c1c90baf60f181d718f (diff)
downloadmruby-de3edcc17044cfb9e85593236f29424eae46b098.tar.gz
mruby-de3edcc17044cfb9e85593236f29424eae46b098.zip
Add `Hash#transform_{keys,values}` to `mruby-hash-ext`.
Diffstat (limited to 'mrbgems/mruby-hash-ext/test/hash.rb')
-rw-r--r--mrbgems/mruby-hash-ext/test/hash.rb26
1 files changed, 26 insertions, 0 deletions
diff --git a/mrbgems/mruby-hash-ext/test/hash.rb b/mrbgems/mruby-hash-ext/test/hash.rb
index 6e70953f5..04324665b 100644
--- a/mrbgems/mruby-hash-ext/test/hash.rb
+++ b/mrbgems/mruby-hash-ext/test/hash.rb
@@ -254,3 +254,29 @@ assert("Hash#dig") do
assert_equal(1, h.dig(:a, :b, :c))
assert_nil(h.dig(:d))
end
+
+assert("Hash#transform_keys") do
+ h = {a:{b:{c:1}}}
+ assert_equal(1, h.dig(:a, :b, :c))
+ assert_nil(h.dig(:d))
+end
+
+assert("Hash#transform_keys") do
+ h = {"1" => 100, "2" => 200}
+ assert_equal(h.transform_keys{|k| k+"!"},
+ {"1!" => 100, "2!" => 200})
+ assert_equal(h.transform_keys{|k|k.to_i},
+ {1 => 100, 2 => 200})
+ assert_equal(h.transform_keys.with_index{|k, i| "#{k}.#{i}"},
+ {"1.0" => 100, "2.1" => 200})
+end
+
+assert("Hash#transform_values") do
+ h = {a: 1, b: 2, c: 3}
+ assert_equal(h.transform_values{|v| v * v + 1},
+ {a: 2, b: 5, c: 10})
+ assert_equal(h.transform_values{|v|v.to_s},
+ {a: "1", b: "2", c: "3"})
+ assert_equal(h.transform_values.with_index{|v, i| "#{v}.#{i}"},
+ {a: "1.0", b: "2.1", c: "3.2"})
+end