diff --git a/scripts/test b/scripts/test new file mode 100755 index 0000000..03cfc1a --- /dev/null +++ b/scripts/test @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +set -euo pipefail + +echo "Running regression tests..." + +lua test/regression/format.lua diff --git a/src/Data/Number/Format.lua b/src/Data/Number/Format.lua index c109e45..137653d 100644 --- a/src/Data/Number/Format.lua +++ b/src/Data/Number/Format.lua @@ -1,6 +1,6 @@ return { - toPrecisionNative = (function(d) return function(n) return string.format("%." .. tostring(d) .. "f", number) end end), - toFixedNative = (function(d) return function(n) return string.format("%." .. tostring(d) .. "d", number) end end), - toExponentialNative = (function(d) return function(n) return string.format("%." .. tostring(d) .. "e", number) end end), + toPrecisionNative = (function(d) return function(n) return string.format("%." .. tostring(d) .. "f", n) end end), + toFixedNative = (function(d) return function(n) return string.format("%." .. tostring(d) .. "d", n) end end), + toExponentialNative = (function(d) return function(n) return string.format("%." .. tostring(d) .. "e", n) end end), toString = (function(num) return tostring(num) end) } diff --git a/test/regression/format.lua b/test/regression/format.lua new file mode 100644 index 0000000..0fb2d6d --- /dev/null +++ b/test/regression/format.lua @@ -0,0 +1,8 @@ +-- Regression guard: Format.lua must use its bound argument n, not an +-- unbound `number` global (nil at runtime, which made every formatter error). +local M = assert(dofile("src/Data/Number/Format.lua")) + +assert(type(M.toPrecisionNative(6)(1234.56789)) == "string", + "toPrecisionNative must format its bound argument, not error on a nil global") + +print("OK Format.lua uses the bound argument n")