diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2018-10-07 13:02:46 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-07-16 17:49:53 +0900 |
commit | 301d194ee3b49e6b078eccb999dd538e9bfa8c7c (patch) | |
tree | 8488af78fa5c0f0dab79905a577e365acef7ca01 /test/ruby/test_integer.rb | |
parent | eee709595cecdbc35d7bca9e779c36523c4659c5 (diff) | |
download | ruby-301d194ee3b49e6b078eccb999dd538e9bfa8c7c.tar.gz |
Add Integer.try_convert [Feature #15211]
Diffstat (limited to 'test/ruby/test_integer.rb')
-rw-r--r-- | test/ruby/test_integer.rb | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/test/ruby/test_integer.rb b/test/ruby/test_integer.rb index 2755987276..1cd256a1cf 100644 --- a/test/ruby/test_integer.rb +++ b/test/ruby/test_integer.rb @@ -660,4 +660,21 @@ class TestInteger < Test::Unit::TestCase def o.fdiv(x); 1; end assert_equal(1.0, 1.fdiv(o)) end + + def test_try_convert + assert_equal(1, Integer.try_convert(1)) + assert_equal(1, Integer.try_convert(1.0)) + assert_nil Integer.try_convert("1") + o = Object.new + assert_nil Integer.try_convert(o) + def o.to_i; 1; end + assert_nil Integer.try_convert(o) + o = Object.new + def o.to_int; 1; end + assert_equal(1, Integer.try_convert(o)) + + o = Object.new + def o.to_int; Object.new; end + assert_raise_with_message(TypeError, /can't convert Object to Integer/) {Integer.try_convert(o)} + end end |