diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-04-18 03:56:33 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-04-18 03:56:33 +0000 |
commit | bd14762c14ba105f0514ab2b051e69adced71c4f (patch) | |
tree | 18a42cd19c809df43980eaf7050eb8afd9b55bb8 /test/ruby/test_float.rb | |
parent | 47b092e42b3b544a62b7e53b8fae3e0d4f04438a (diff) | |
download | ruby-bd14762c14ba105f0514ab2b051e69adced71c4f.tar.gz |
numeric.c: flo_truncate
* numeric.c (flo_truncate): add an optional parameter, digits, as
well as Float#round. [Feature #12245]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54625 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/ruby/test_float.rb')
-rw-r--r-- | test/ruby/test_float.rb | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/test/ruby/test_float.rb b/test/ruby/test_float.rb index 424436b088..06b1d85242 100644 --- a/test/ruby/test_float.rb +++ b/test/ruby/test_float.rb @@ -501,6 +501,32 @@ class TestFloat < Test::Unit::TestCase assert_equal(0.99, 0.981.ceil(prec)) end + def test_truncate_with_precision + assert_equal(1.100, 1.111.truncate(1)) + assert_equal(1.110, 1.111.truncate(2)) + assert_equal(11110, 11119.9.truncate(-1)) + assert_equal(11100, 11100.0.truncate(-2)) + assert_equal(11100, 11199.9.truncate(-2)) + assert_equal(-1.100, -1.111.truncate(1)) + assert_equal(-1.110, -1.111.truncate(2)) + assert_equal(-11110, -11111.1.truncate(-1)) + assert_equal(-11100, -11111.1.truncate(-2)) + assert_equal(0, 11111.1.truncate(-5)) + + assert_equal(10**300, 1.1e300.truncate(-300)) + assert_equal(-10**300, -1.1e300.truncate(-300)) + assert_equal(1.0e-300, 1.1e-300.truncate(300)) + assert_equal(-1.0e-300, -1.1e-300.truncate(300)) + + assert_equal(42.0, 42.0.truncate(308)) + assert_equal(1.0e307, 1.0e307.truncate(2)) + + assert_raise(TypeError) {1.0.truncate("4")} + assert_raise(TypeError) {1.0.truncate(nil)} + def (prec = Object.new).to_int; 2; end + assert_equal(0.99, 0.998.truncate(prec)) + end + VS = [ 18446744073709551617.0, 18446744073709551616.0, |