mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
44 lines
836 B
Ruby
44 lines
836 B
Ruby
##
|
|
# Numeric ISO Test
|
|
|
|
assert('Numeric', '15.2.7') do
|
|
assert_equal Class, Numeric.class
|
|
end
|
|
|
|
assert('Numeric#+@', '15.2.7.4.1') do
|
|
assert_equal(+1, +1)
|
|
end
|
|
|
|
assert('Numeric#-@', '15.2.7.4.2') do
|
|
assert_equal(-1, -1)
|
|
end
|
|
|
|
assert('Numeric#abs', '15.2.7.4.3') do
|
|
assert_equal(1, 1.abs)
|
|
assert_equal(1.0, -1.abs) if class_defined?("Float")
|
|
end
|
|
|
|
assert('Numeric#pow') do
|
|
assert_equal(8, 2 ** 3)
|
|
assert_equal(-8, -2 ** 3)
|
|
assert_equal(1, 2 ** 0)
|
|
assert_equal(1, 2.2 ** 0)
|
|
assert_equal(0.5, 2 ** -1)
|
|
end
|
|
|
|
assert('Numeric#/', '15.2.8.3.4') do
|
|
n = Class.new(Numeric){ def /(x); 15.1;end }.new
|
|
|
|
assert_equal(2, 10/5)
|
|
assert_equal(0.0625, 1/16)
|
|
assert_equal(15.1, n/10)
|
|
assert_raise(TypeError){ 1/n }
|
|
assert_raise(TypeError){ 1/nil }
|
|
end
|
|
|
|
# Not ISO specified
|
|
|
|
assert('Numeric#**') do
|
|
assert_equal 8.0, 2.0**3
|
|
end
|