ruby-changes:4734
From: ko1@a...
Date: Mon, 28 Apr 2008 14:42:42 +0900 (JST)
Subject: [ruby-changes:4734] akr - Ruby:r16228 (trunk): more tests.
akr 2008-04-28 14:42:34 +0900 (Mon, 28 Apr 2008)
New Revision: 16228
Modified files:
trunk/test/ruby/test_float.rb
Log:
more tests.
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/test/ruby/test_float.rb?r1=16228&r2=16227&diff_format=u
Index: test/ruby/test_float.rb
===================================================================
--- test/ruby/test_float.rb (revision 16227)
+++ test/ruby/test_float.rb (revision 16228)
@@ -278,37 +278,122 @@
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)
+ VS = [
+ 18446744073709551617.0,
+ 18446744073709551616.0,
+ 18446744073709551615.8,
+ 18446744073709551615.5,
+ 18446744073709551615.2,
+ 18446744073709551615.0,
+ 18446744073709551614.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)
+ 4611686018427387905.0,
+ 4611686018427387904.0,
+ 4611686018427387903.8,
+ 4611686018427387903.5,
+ 4611686018427387903.2,
+ 4611686018427387903.0,
+ 4611686018427387902.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)
+ 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
--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/