From 2590d7447a96ba81a1ea2ae5b0e705f00a1631ac Mon Sep 17 00:00:00 2001 From: naruse Date: Mon, 13 Sep 2010 01:15:39 +0000 Subject: * util.c (ruby_strtod): reject Float('0x0.'). [ruby-dev:42239] Bug #3820 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29239 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_float.rb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'test/ruby') diff --git a/test/ruby/test_float.rb b/test/ruby/test_float.rb index 1146b583f0..961596b9a3 100644 --- a/test/ruby/test_float.rb +++ b/test/ruby/test_float.rb @@ -94,7 +94,6 @@ class TestFloat < Test::Unit::TestCase assert_equal([ 0.0].pack('G'), [Float(" 0x0p+0").to_f].pack('G')) assert_equal([-0.0].pack('G'), [Float("-0x0p+0").to_f].pack('G')) assert_equal(255.0, Float("0Xff")) - assert_equal(255.5, Float("0Xff.8")) assert_equal(1.0, Float("0X1.P+0")) assert_equal(1024.0, Float("0x1p10")) assert_equal(1024.0, Float("0x1p+10")) @@ -448,6 +447,13 @@ class TestFloat < Test::Unit::TestCase assert_raise(ArgumentError) { Float("1.0\x001") } assert_equal(15.9375, Float('0xf.fp0')) assert_raise(ArgumentError) { Float('0x') } + assert_equal(15, Float('0xf')) + assert_equal(15, Float('0xfp0')) + assert_raise(ArgumentError) { Float('0xfp') } + assert_raise(ArgumentError) { Float('0xf.') } + assert_raise(ArgumentError) { Float('0xf.p') } + assert_equal(15, Float('0xf.p0')) + assert_raise(ArgumentError) { Float('0xf.f') } assert_raise(ArgumentError) { Float('0xf.fp') } assert_equal(Float::INFINITY, Float('0xf.fp1000000000000000')) assert_equal(1, suppress_warning {Float("1e10_00")}.infinite?) -- cgit v1.2.3