summaryrefslogtreecommitdiffhomepage
path: root/test/assert.rb
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2019-04-22 22:26:46 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2019-04-22 22:26:46 +0900
commit5ab8ca41a5a64183784c739b82da9e4cd87bbc79 (patch)
treea041baf06b77d21bbb461eb9aa202235e1d296fb /test/assert.rb
parent49cb1490331addee130b9c38a3d05e7f17382097 (diff)
parent0debf154ee9aa4c4f9aa0190a54a810801c3d31d (diff)
downloadmruby-5ab8ca41a5a64183784c739b82da9e4cd87bbc79.tar.gz
mruby-5ab8ca41a5a64183784c739b82da9e4cd87bbc79.zip
Merge branch 'shuujii-add-assert_predicate-and-assert_operator'
Diffstat (limited to 'test/assert.rb')
-rw-r--r--test/assert.rb20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/assert.rb b/test/assert.rb
index e0fac4d90..385de49bd 100644
--- a/test/assert.rb
+++ b/test/assert.rb
@@ -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)