Skip to content

Commit 5ef0372

Browse files
committed
fix(is): exclude Infinity and NaN from float predicate
1 parent 9effc55 commit 5ef0372

2 files changed

Lines changed: 4 additions & 1 deletion

File tree

‎src/mods/is.lua‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ M["function"] = function (v) return type(v) == "function" end
3131
-- stylua: ignore start
3232
function M.falsy(v) return not v and true or false end
3333
function M.finite(v) return type(v) == "number" and v < huge and v > -huge end
34-
function M.float(v) return type(v) == "number" and math_type(v) == "float" end
34+
function M.float(v) return math_type(v) == "float" and v < huge and v > -huge end
3535
function M.infinite(v) return type(v) == "number" and abs(v) == huge end
3636
function M.integer(v) return type(v) == "number" and v % 1 == 0 end
3737
function M.truthy(v) return v and true or false end

‎tests/is.test.lua‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,9 @@ describe("mods.is", function()
108108
Float = {
109109
{ expected = true , args = { 1.5 } },
110110
{ expected = mods.runtime.version >= 503, args = { 2.0 } },
111+
{ expected = false, args = { math.huge } },
112+
{ expected = false, args = { -math.huge } },
113+
{ expected = false, args = { 0/0 } },
111114
{ expected = false, args = { 1 } },
112115
{ expected = false, args = { "abc" } },
113116
{ expected = false, args = { nil } },

0 commit comments

Comments
 (0)