1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

Fix assertion failed in Complex.polar without NDEBUG (#3551)

Fixes [Bug #17172].
This commit is contained in:
Kenta Murata 2020-09-16 19:27:16 +09:00 committed by GitHub
parent 10290da54d
commit 68b5f14d53
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
Notes: git 2020-09-16 19:27:40 +09:00
Merged-By: mrkn <mrkn@ruby-lang.org>
2 changed files with 13 additions and 0 deletions

View file

@ -732,6 +732,14 @@ nucomp_s_polar(int argc, VALUE *argv, VALUE klass)
nucomp_real_check(arg);
break;
}
if (RB_TYPE_P(abs, T_COMPLEX)) {
get_dat1(abs);
abs = dat->real;
}
if (RB_TYPE_P(arg, T_COMPLEX)) {
get_dat1(arg);
arg = dat->real;
}
return f_complex_polar(klass, abs, arg);
}

View file

@ -220,6 +220,11 @@ class Complex_Test < Test::Unit::TestCase
def test_polar
assert_equal([1,2], Complex.polar(1,2).polar)
assert_equal(Complex.polar(1.0, Math::PI * 2 / 3), Complex.polar(1, Math::PI * 2 / 3))
assert_in_out_err([], <<-'end;', ['OK'], [])
Complex.polar(1, Complex(1, 0))
puts :OK
end;
end
def test_uplus