do --- pass through one
assert(assert(true) == true)
assert(assert(3) == 3)
assert(assert(1.5) == 1.5)
assert(assert("x") == "x")
local f = function() end
assert(assert(f) == f)
local t = {}
assert(assert(t) == t)
end
do --- pass through many
local b, c = assert("b", "c")
assert(b == "b")
assert(c == "c")
local d, e, f, g = assert("d", 5, true, false)
assert(d == "d")
assert(e == 5)
assert(f == true)
assert(g == false)
end
do --- raise on nil
local ok, err = pcall(assert, nil)
assert(ok == false)
assert(err == "assertion failed!")
end
do --- raise on false
local ok, err = pcall(assert, false, "msg")
assert(ok == false)
assert(err == "msg")
end