You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
2.0 KiB
61 lines
2.0 KiB
-- Smoke-test for the stdlib extensions.
|
|
|
|
print("=== math ===")
|
|
print("round(2.5) =", math.round(2.5)) -- 3
|
|
print("round(2.567,2) =", math.round(2.567, 2)) -- 2.57
|
|
print("clamp(10,0,5) =", math.clamp(10, 0, 5)) -- 5
|
|
print("isFinite(1/0) =", math.isFinite(1 / 0)) -- false
|
|
print("isFinite(3.14) =", math.isFinite(3.14)) -- true
|
|
print("sign(-7) =", math.sign(-7)) -- -1
|
|
print("scale(5,0,10,0,100) =", math.scale(5, 0, 10, 0, 100)) -- 50.0
|
|
|
|
print("\n=== table ===")
|
|
local t = { 3, 1, 4, 1, 5 }
|
|
print("sum =", table.sum(t)) -- 14
|
|
print("min =", table.min(t)) -- 1
|
|
print("max =", table.max(t)) -- 5
|
|
print("mean =", table.mean(t)) -- 2.8
|
|
local evens = table.ifilter(t, function(v)
|
|
return v % 2 == 0
|
|
end)
|
|
print("evens =", table.concat(evens, ",")) -- 4
|
|
local doubled = table.map({ 1, 2, 3 }, function(v)
|
|
return v * 2
|
|
end)
|
|
print("doubled=", table.concat(doubled, ",")) -- 2,4,6
|
|
print("deepCopy ok:", table.deepCopy({ x = { y = 1 } }).x.y == 1)
|
|
print("merged =", table.concat(table.merge({ 1, 2 }, { 3, 4 }), ",")) -- 1,2,3,4
|
|
|
|
print("\n=== utils ===")
|
|
print("dump(nil) =", utils.dump(nil))
|
|
print("dump({1,2}) =", utils.dump({ 1, 2 }))
|
|
print("dump({x=1}) =", utils.dump({ x = 1 }))
|
|
print("isNull(NULL) =", utils.isNull(utils.NULL))
|
|
print("isNull(nil) =", utils.isNull(nil))
|
|
|
|
local json = utils.toJSON({ name = "Alice", age = 30, tags = { "a", "b" } })
|
|
print("toJSON =", json)
|
|
local parsed = utils.fromJSON(json)
|
|
print("fromJSON name=", parsed.name, "age=", parsed.age)
|
|
|
|
local v, err = utils.try(function()
|
|
return 42
|
|
end)
|
|
print("try ok: v=", v, "err=", err)
|
|
local v2, err2 = utils.try(function()
|
|
error("oops")
|
|
end)
|
|
print("try err: v=", v2, "err ~= nil:", err2 ~= nil)
|
|
|
|
print("\n=== os ===")
|
|
local t1 = os.microtime()
|
|
os.sleep(0.01)
|
|
local t2 = os.microtime()
|
|
print("microtime ok:", t2 > t1)
|
|
print("clock >= 0:", os.clock() >= 0)
|
|
|
|
print("\n=== log (set RUST_LOG=info to see output on stderr) ===")
|
|
log.info("hello from log.info")
|
|
log.warn("hello from log.warn")
|
|
|
|
print("\nAll checks passed.")
|
|
|