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

* complex.c (nurat_{to_s,inspect}): provides better representation

for in-finite imag part.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20474 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
tadf 2008-12-03 16:43:01 +00:00
parent 28c53aabca
commit ef38a43c50
3 changed files with 20 additions and 10 deletions

View file

@ -1,3 +1,8 @@
Thu Dec 4 01:37:47 2008 Tadayoshi Funaba <tadf@dotrb.org>
* complex.c (nurat_{to_s,inspect}): provides better representation
for in-finite imag part.
Thu Dec 4 01:22:41 2008 Tadayoshi Funaba <tadf@dotrb.org>
* complex.c (f_signbit): NaN may be signed value.

View file

@ -922,6 +922,8 @@ nucomp_to_s(VALUE self)
rb_str_cat2(s, !impos ? "-" : "+");
rb_str_concat(s, f_to_s(f_abs(dat->imag)));
if (!rb_isdigit(RSTRING_PTR(s)[RSTRING_LEN(s) - 1]))
rb_str_cat2(s, "*");
rb_str_cat2(s, "i");
return s;
@ -930,18 +932,11 @@ nucomp_to_s(VALUE self)
static VALUE
nucomp_inspect(VALUE self)
{
VALUE s, impos;
get_dat1(self);
impos = f_tpositive_p(dat->imag);
VALUE s;
s = rb_str_new2("(");
rb_str_concat(s, f_inspect(dat->real));
rb_str_cat2(s, !impos ? "-" : "+");
rb_str_concat(s, f_inspect(f_abs(dat->imag)));
rb_str_cat2(s, "i)");
rb_str_concat(s, nucomp_to_s(self));
rb_str_cat2(s, ")");
return s;
}

View file

@ -564,6 +564,16 @@ class Complex_Test < Test::Unit::TestCase
assert_equal('1-2/3i', Complex(1,Rational(-2,3)).to_s)
assert_equal('-1-2/3i', Complex(-1,Rational(-2,3)).to_s)
end
nan = 0.0 / 0
inf = 1.0 / 0
if nan.nan?
assert_equal('NaN+NaN*i', Complex(nan,nan).to_s)
end
if inf.infinite?
assert_equal('Infinity+Infinity*i', Complex(inf,inf).to_s)
assert_equal('Infinity-Infinity*i', Complex(inf,-inf).to_s)
end
end
def test_inspect