diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2022-10-23 13:42:36 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2022-10-23 16:44:43 +0900 |
commit | 86450d03a8c1570571c20452578cb923060e1d1f (patch) | |
tree | df08a0af0fc039d1a455f0e5f3403625f671ed8f /test | |
parent | c8c136265c6dd343990293016eb9904aa78a0412 (diff) |
Reduce type check of arguments at Complex creation
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/6618
Diffstat (limited to 'test')
-rw-r--r-- | test/ruby/test_complex.rb | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/test/ruby/test_complex.rb b/test/ruby/test_complex.rb index 5b63b03acf..b35aedb6b0 100644 --- a/test/ruby/test_complex.rb +++ b/test/ruby/test_complex.rb @@ -1145,15 +1145,34 @@ class Complex_Test < Test::Unit::TestCase end def test_canonicalize_polar - obj = Class.new(Numeric) do - def initialize - @x = 2 + error = "not a real" + assert_raise_with_message(TypeError, error) do + Complex.polar(1i) + end + assert_raise_with_message(TypeError, error) do + Complex.polar(1i, 0) + end + assert_raise_with_message(TypeError, error) do + Complex.polar(0, 1i) + end + n = Class.new(Numeric) do + def initialize(x = 1) + @x = x end def real? (@x -= 1) > 0 end - end.new - assert_raise(TypeError) do + end + obj = n.new + assert_raise_with_message(TypeError, error) do + Complex.polar(obj) + end + obj = n.new + assert_raise_with_message(TypeError, error) do + Complex.polar(obj, 0) + end + obj = n.new + assert_raise_with_message(TypeError, error) do Complex.polar(1, obj) end end |