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.
53 lines
2.0 KiB
53 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.")
|
|
|