mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Merge branch 'shuujii-add-assert_predicate-and-assert_operator'
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
$undefined = Object.new
|
||||
$ok_test = 0
|
||||
$ko_test = 0
|
||||
$kill_test = 0
|
||||
@@ -136,6 +137,25 @@ def _assert_include(affirmed, collection, obj, msg = nil)
|
||||
assert_true(ret, msg, diff)
|
||||
end
|
||||
|
||||
def assert_predicate(*args); _assert_predicate(true, *args) end
|
||||
def assert_not_predicate(*args); _assert_predicate(false, *args) end
|
||||
def _assert_predicate(affirmed, obj, op, msg = nil)
|
||||
unless ret = obj.__send__(op) == affirmed
|
||||
diff = " Expected #{obj.inspect} to #{'not ' unless affirmed}be #{op}."
|
||||
end
|
||||
assert_true(ret, msg, diff)
|
||||
end
|
||||
|
||||
def assert_operator(*args); _assert_operator(true, *args) end
|
||||
def assert_not_operator(*args); _assert_operator(false, *args) end
|
||||
def _assert_operator(affirmed, obj1, op, obj2 = $undefined, msg = nil)
|
||||
return _assert_predicate(affirmed, obj1, op, msg) if obj2 == $undefined
|
||||
unless ret = obj1.__send__(op, obj2) == affirmed
|
||||
diff = " Expected #{obj1.inspect} to #{'not ' unless affirmed}be #{op} #{obj2.inspect}."
|
||||
end
|
||||
assert_true(ret, msg, diff)
|
||||
end
|
||||
|
||||
##
|
||||
# Fails unless +obj+ is a kind of +cls+.
|
||||
def assert_kind_of(cls, obj, msg = nil)
|
||||
|
||||
+10
-10
@@ -82,8 +82,8 @@ assert('Float#ceil', '15.2.9.3.8') do
|
||||
end
|
||||
|
||||
assert('Float#finite?', '15.2.9.3.9') do
|
||||
assert_true 3.123456789.finite?
|
||||
assert_false (1.0 / 0.0).finite?
|
||||
assert_predicate 3.123456789, :finite?
|
||||
assert_not_predicate 1.0 / 0.0, :finite?
|
||||
end
|
||||
|
||||
assert('Float#floor', '15.2.9.3.10') do
|
||||
@@ -139,7 +139,7 @@ assert('Float#round', '15.2.9.3.12') do
|
||||
nan = 0.0/0.0
|
||||
assert_raise(FloatDomainError){ nan.round }
|
||||
assert_raise(FloatDomainError){ nan.round(-1) }
|
||||
assert_true(nan.round(1).nan?)
|
||||
assert_predicate(nan.round(1), :nan?)
|
||||
end
|
||||
|
||||
assert('Float#to_f', '15.2.9.3.13') do
|
||||
@@ -178,10 +178,10 @@ assert('Float#divmod') do
|
||||
end
|
||||
|
||||
assert('Float#nan?') do
|
||||
assert_true (0.0/0.0).nan?
|
||||
assert_false 0.0.nan?
|
||||
assert_false (1.0/0.0).nan?
|
||||
assert_false (-1.0/0.0).nan?
|
||||
assert_predicate 0.0/0.0, :nan?
|
||||
assert_not_predicate 0.0, :nan?
|
||||
assert_not_predicate 1.0/0.0, :nan?
|
||||
assert_not_predicate -1.0/0.0, :nan?
|
||||
end
|
||||
|
||||
assert('Float#<<') do
|
||||
@@ -240,9 +240,9 @@ assert('Float#to_s') do
|
||||
end
|
||||
|
||||
assert('Float#eql?') do
|
||||
assert_true(5.0.eql?(5.0))
|
||||
assert_false(5.0.eql?(5))
|
||||
assert_false(5.0.eql?("5.0"))
|
||||
assert_operator(5.0, :eql?, 5.0)
|
||||
assert_not_operator(5.0, :eql?, 5)
|
||||
assert_not_operator(5.0, :eql?, "5.0")
|
||||
end
|
||||
|
||||
end # const_defined?(:Float)
|
||||
|
||||
Reference in New Issue
Block a user