-- 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.")