diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-04-28 05:42:34 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-04-28 05:42:34 +0000 |
commit | c4eb7b916f23d2cadb40c1409e8b1427949724f2 (patch) | |
tree | a64c8f53de782fc57abf50ca63355a4d74512b60 /test/ruby/test_float.rb | |
parent | e2551558e4b5c1176f59802bb3199a18f20ce631 (diff) | |
download | ruby-c4eb7b916f23d2cadb40c1409e8b1427949724f2.tar.gz |
more tests.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16228 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/ruby/test_float.rb')
-rw-r--r-- | test/ruby/test_float.rb | 149 |
1 files changed, 117 insertions, 32 deletions
diff --git a/test/ruby/test_float.rb b/test/ruby/test_float.rb index 3b23a3cd82..c3277acfdb 100644 --- a/test/ruby/test_float.rb +++ b/test/ruby/test_float.rb @@ -278,37 +278,122 @@ class TestFloat < Test::Unit::TestCase assert_raise(TypeError) { Float.induced_from(nil) } end - def test_to_i - assert_operator(4611686018427387905.0.to_i, :>, 0) - assert_operator(4611686018427387904.0.to_i, :>, 0) - assert_operator(4611686018427387903.8.to_i, :>, 0) - assert_operator(4611686018427387903.5.to_i, :>, 0) - assert_operator(4611686018427387903.2.to_i, :>, 0) - assert_operator(4611686018427387903.0.to_i, :>, 0) - assert_operator(4611686018427387902.0.to_i, :>, 0) - - assert_operator(1073741825.0.to_i, :>, 0) - assert_operator(1073741824.0.to_i, :>, 0) - assert_operator(1073741823.8.to_i, :>, 0) - assert_operator(1073741823.5.to_i, :>, 0) - assert_operator(1073741823.2.to_i, :>, 0) - assert_operator(1073741823.0.to_i, :>, 0) - assert_operator(1073741822.0.to_i, :>, 0) - - assert_operator((-1073741823.0).to_i, :<, 0) - assert_operator((-1073741824.0).to_i, :<, 0) - assert_operator((-1073741824.2).to_i, :<, 0) - assert_operator((-1073741824.5).to_i, :<, 0) - assert_operator((-1073741824.8).to_i, :<, 0) - assert_operator((-1073741825.0).to_i, :<, 0) - assert_operator((-1073741826.0).to_i, :<, 0) - - assert_operator((-4611686018427387903.0).to_i, :<, 0) - assert_operator((-4611686018427387904.0).to_i, :<, 0) - assert_operator((-4611686018427387904.2).to_i, :<, 0) - assert_operator((-4611686018427387904.5).to_i, :<, 0) - assert_operator((-4611686018427387904.8).to_i, :<, 0) - assert_operator((-4611686018427387905.0).to_i, :<, 0) - assert_operator((-4611686018427387906.0).to_i, :<, 0) + + VS = [ + 18446744073709551617.0, + 18446744073709551616.0, + 18446744073709551615.8, + 18446744073709551615.5, + 18446744073709551615.2, + 18446744073709551615.0, + 18446744073709551614.0, + + 4611686018427387905.0, + 4611686018427387904.0, + 4611686018427387903.8, + 4611686018427387903.5, + 4611686018427387903.2, + 4611686018427387903.0, + 4611686018427387902.0, + + 4294967297.0, + 4294967296.0, + 4294967295.8, + 4294967295.5, + 4294967295.2, + 4294967295.0, + 4294967294.0, + + 1073741825.0, + 1073741824.0, + 1073741823.8, + 1073741823.5, + 1073741823.2, + 1073741823.0, + 1073741822.0, + + -1073741823.0, + -1073741824.0, + -1073741824.2, + -1073741824.5, + -1073741824.8, + -1073741825.0, + -1073741826.0, + + -4294967295.0, + -4294967296.0, + -4294967296.2, + -4294967296.5, + -4294967296.8, + -4294967297.0, + -4294967298.0, + + -4611686018427387903.0, + -4611686018427387904.0, + -4611686018427387904.2, + -4611686018427387904.5, + -4611686018427387904.8, + -4611686018427387905.0, + -4611686018427387906.0, + + -18446744073709551615.0, + -18446744073709551616.0, + -18446744073709551616.2, + -18446744073709551616.5, + -18446744073709551616.8, + -18446744073709551617.0, + -18446744073709551618.0, + ] + + def test_truncate + VS.each {|f| + i = f.truncate + assert_equal(i, f.to_i) + if f < 0 + assert_operator(i, :<, 0) + else + assert_operator(i, :>, 0) + end + assert_operator(i.abs, :<=, f.abs) + } + end + + def test_ceil + VS.each {|f| + i = f.ceil + if f < 0 + assert_operator(i, :<, 0) + else + assert_operator(i, :>, 0) + end + assert_operator(i, :>=, f) + } + end + + def test_floor + VS.each {|f| + i = f.floor + if f < 0 + assert_operator(i, :<, 0) + else + assert_operator(i, :>, 0) + end + assert_operator(i, :<=, f) + } + end + + def test_round + VS.each {|f| + i = f.round + if f < 0 + assert_operator(i, :<, 0) + else + assert_operator(i, :>, 0) + end + d = f - i + assert_operator(-0.5, :<=, d) + assert_operator(d, :<=, 0.5) + } end + end |