Ignore:
Timestamp:
Jul 9, 2020, 8:51:43 AM (4 years ago)
Author:
coas-nagasima
Message:

mrubyを2.1.1に更新

Location:
EcnlProtoTool/trunk/mruby-2.1.1
Files:
1 edited
1 moved

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/mruby-2.1.1/mrbgems/mruby-hash-ext/test/hash.rb

    r331 r439  
    4646end
    4747
    48 assert('Hash.try_convert') do
    49   assert_nil Hash.try_convert(nil)
    50   assert_nil Hash.try_convert("{1=>2}")
    51   assert_equal({1=>2}, Hash.try_convert({1=>2}))
    52 end
    53 
    5448assert('Hash#merge!') do
    5549  a = { 'abc_key' => 'abc_value', 'cba_key' => 'cba_value' }
     
    8175  h = Hash.new { |hash,k| hash[k] = k }
    8276  assert_equal keys, h.values_at(*keys)
     77end
     78
     79assert('Hash#compact') do
     80  h = { "cat" => "feline", "dog" => nil, "cow" => false }
     81
     82  assert_equal({ "cat" => "feline", "cow" => false }, h.compact)
     83  assert_equal({ "cat" => "feline", "dog" => nil, "cow" => false }, h)
     84end
     85
     86assert('Hash#compact!') do
     87  h = { "cat" => "feline", "dog" => nil, "cow" => false }
     88
     89  h.compact!
     90  assert_equal({ "cat" => "feline", "cow" => false }, h)
    8391end
    8492
     
    255263  assert_nil(h.dig(:d))
    256264end
     265
     266assert("Hash#transform_keys") do
     267  h = {"1" => 100, "2" => 200}
     268  assert_equal({"1!" => 100, "2!" => 200},
     269               h.transform_keys{|k| k+"!"})
     270  assert_equal({1 => 100, 2 => 200},
     271               h.transform_keys{|k|k.to_i})
     272  assert_same(h, h.transform_keys!{|k|k.to_i})
     273  assert_equal({1 => 100, 2 => 200}, h)
     274end
     275
     276assert("Hash#transform_values") do
     277  h = {a: 1, b: 2, c: 3}
     278  assert_equal({a: 2, b: 5, c: 10},
     279               h.transform_values{|v| v * v + 1})
     280  assert_equal({a: "1", b: "2", c: "3"},
     281               h.transform_values{|v|v.to_s})
     282  assert_same(h, h.transform_values!{|v|v.to_s})
     283  assert_equal({a: "1", b: "2", c: "3"}, h)
     284end
     285
     286assert("Hash#slice") do
     287  h = { a: 100, b: 200, c: 300 }
     288  assert_equal({:a=>100}, h.slice(:a))
     289  assert_equal({:b=>200, :c=>300}, h.slice(:b, :c, :d))
     290end
Note: See TracChangeset for help on using the changeset viewer.