* test/ruby/test_hash.rb: add tests for Hash#to_h, which copies
  default value/proc but not instance variables.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54051 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2016-03-09 05:14:42 +00:00
Родитель d000891e43
Коммит cccfe4774c
1 изменённых файлов: 22 добавлений и 0 удалений

Просмотреть файл

@ -742,6 +742,28 @@ class TestHash < Test::Unit::TestCase
assert_instance_of(Hash, h)
end
def test_to_h_instance_variable
@h.instance_variable_set(:@x, 42)
h = @h.to_h
if @cls == Hash
assert_equal(42, h.instance_variable_get(:@x))
else
assert_not_send([h, :instance_variable_defined?, :@x])
end
end
def test_to_h_default_value
@h.default = :foo
h = @h.to_h
assert_equal(:foo, h.default)
end
def test_to_h_default_proc
@h.default_proc = ->(_,k) {"nope#{k}"}
h = @h.to_h
assert_equal("nope42", h[42])
end
def test_nil_to_h
h = nil.to_h
assert_equal({}, h)