diff options
Diffstat (limited to 'test/t/float.rb')
| -rw-r--r-- | test/t/float.rb | 60 |
1 files changed, 41 insertions, 19 deletions
diff --git a/test/t/float.rb b/test/t/float.rb index fc87a5b22..e2c139c03 100644 --- a/test/t/float.rb +++ b/test/t/float.rb @@ -5,6 +5,10 @@ assert('Float', '15.2.9') do Float.class == Class end +assert('Float superclass', '15.2.9.2') do + Float.superclass == Numeric +end + assert('Float#+', '15.2.9.3.1') do a = 3.123456788 + 0.000000001 b = 3.123456789 + 1 @@ -22,11 +26,11 @@ assert('Float#-', '15.2.9.3.2') do end assert('Float#*', '15.2.9.3.3') do - a = 3.123456789 * 3.123456789 - b = 3.123456789 * 1 + a = 3.125 * 3.125 + b = 3.125 * 1 - check_float(a, 9.75598231275019) and - check_float(b, 3.123456789) + check_float(a, 9.765625) and + check_float(b, 3.125) end assert('Float#/', '15.2.9.3.4') do @@ -38,19 +42,19 @@ assert('Float#/', '15.2.9.3.4') do end assert('Float#%', '15.2.9.3.5') do - a = 3.123456789 % 3.123456789 - b = 3.123456789 % 1 + a = 3.125 % 3.125 + b = 3.125 % 1 check_float(a, 0.0) and - check_float(b, 0.123456789) + check_float(b, 0.125) end assert('Float#<=>', '15.2.9.3.6') do - a = 3.123456789 <=> 3.123456788 - b = 3.123456789 <=> 3.123456789 - c = 3.123456789 <=> 3.123456790 - a2 = 3.123456789 <=> 3 - c2 = 3.123456789 <=> 4 + a = 3.125 <=> 3.123 + b = 3.125 <=> 3.125 + c = 3.125 <=> 3.126 + a2 = 3.125 <=> 3 + c2 = 3.125 <=> 4 a == 1 and b == 0 and c == -1 and a2 == 1 and c2 == -1 @@ -61,7 +65,11 @@ assert('Float#==', '15.2.9.3.7') do end assert('Float#ceil', '15.2.9.3.8') do - 3.123456789.ceil == 4 + a = 3.123456789.ceil + b = 3.0.ceil + c = -3.123456789.ceil + d = -3.0.ceil + a == 4 and b == 3 and c == -3 and d == -3 end assert('Float#finite?', '15.2.9.3.9') do @@ -70,20 +78,34 @@ assert('Float#finite?', '15.2.9.3.9') do end assert('Float#floor', '15.2.9.3.10') do - 3.123456789.floor == 3 + a = 3.123456789.floor + b = 3.0.floor + c = -3.123456789.floor + d = -3.0.floor + a == 3 and b == 3 and c == -4 and d == -3 end assert('Float#infinite?', '15.2.9.3.11') do - not 3.123456789.infinite? and - (1.0 / 0.0).infinite? + a = 3.123456789.infinite? + b = (1.0 / 0.0).infinite? + c = (-1.0 / 0.0).infinite? + + a == nil and b == 1 and c == -1 end assert('Float#round', '15.2.9.3.12') do a = 3.123456789.round b = 3.5.round - c = 3.499999999.round + c = 3.4999.round + d = (-3.123456789).round + e = (-3.5).round + f = 12345.67.round(-1) + g = 3.423456789.round(0) + h = 3.423456789.round(1) + i = 3.423456789.round(3) - a == 3 and b == 4 and c == 3 + a == 3 and b == 4 and c == 3 and d == -3 and e == -4 and + f == 12350 and g == 3 and h == 3.4 and i == 3.423 end assert('Float#to_f', '15.2.9.3.13') do @@ -97,5 +119,5 @@ assert('Float#to_i', '15.2.9.3.14') do end assert('Float#truncate', '15.2.9.3.15') do - 3.123456789.truncate == 3 + 3.123456789.truncate == 3 and -3.1.truncate == -3 end |
