local asserts = {} function asserts.number(name, count, ...) local args = { ... } for i = 1, count do assert(args[i] ~= nil, "Argument " .. i .. " to " .. name .. " may not be nil and must be an int!") assert(type(args[i]) == "number", "Argument " .. i .. " to " .. name .. " must be an int!") assert(args[i] == args[i], "Argument " .. i .. " to " .. name .. " must not be NaN!") end end function asserts.numberOrNil(name, count, ...) local args = { ... } for i = 1, count do if (args[i] ~= nil) then assert(type(args[i]) == "number", "Argument " .. i .. " to " .. name .. " can only be of type int!") assert(args[i] == args[i], "Argument " .. i .. " to " .. name .. " may not be NaN!") end end end return asserts