28 lines
719 B
Lua
28 lines
719 B
Lua
local function assertEqual(a, b)
|
|
if a ~= b then
|
|
error("Assertion failed: " .. a .. " is not equal to " .. b)
|
|
end
|
|
end
|
|
|
|
-- Logic values, shouldn't be affected
|
|
assertEqual(some(nil), nil)
|
|
assertEqual(some(true), true)
|
|
assertEqual(some(false), false)
|
|
|
|
-- Numbers
|
|
assertEqual(some(1), 1)
|
|
assertEqual(some(0), 0) -- 0 is not falsy unlike C
|
|
assertEqual(some(-1), -1)
|
|
assertEqual(some(1/0), nil) -- inf
|
|
assertEqual(some(0/0), nil) -- nan
|
|
|
|
-- Strings
|
|
assertEqual(some("foo bar"), "foo bar")
|
|
assertEqual(some(""), nil)
|
|
assertEqual(some(" \n"), nil)
|
|
|
|
-- Tables
|
|
assertEqual(some({}), nil)
|
|
assertEqual(some({"baz"})[1], "baz") -- compare an element to ensure passthrough
|
|
assertEqual(some({foo="bar"})["foo"], "bar")
|