;
; check if standard Lua libraries are loaded
; see Lua 5.5 manual for full details: https://www.lua.org/manual/5.5/manual.html#6
;
    LUA
        -- base lib
        assert(true)
        assert(2 == tonumber("10", 2))
        assert(43794 == tonumber("ab12", 16))
        assert("1234" == tostring(1234))
        -- currently supported versions 5.3, 5.4 and 5.5
        assert("Lua 5.5" == _VERSION or "Lua 5.4" == _VERSION or "Lua 5.3" == _VERSION)
        assert("nil" == type(nil))
        -- string manipulation
        assert(0x42 == string.byte("ABC", 2))
        assert("ABC" == string.char(0x41, 0x42, 0x43))
        assert("ab12" == string.format('%x', 43794))
        -- math
        assert(math.abs(300 * 0.07 - 21.0) ~= 0)        -- trollface
        assert(math.abs(300 * 0.07 - 21.0) < 1e-14)     -- lua doesn't have epsilon-equal out of box :/
        assert(128 == 2^7)  -- math.pow is replaced by "^" operator in recent Lua versions
        assert("integer" == math.type(1234))
        assert("float" == math.type(1234.0))
        -- and others... see the documentation
    ENDLUA

;
; Third-party embedded library(ies) from old sjasmplus versions (if they ever did work?)
;

; hex: hex.to_hex(i), hex.to_dec(h)
; - removed, this should be easy to replace with standard lib, write your own wrappers if needed
    LUA
        assert(43794 == tonumber("ab12", 16))
        assert(43794 == tonumber("0xab12"))
        assert("ab12" == string.format('%x', 43794))
        assert("0xab12" == string.format('0x%x', 43794))
    ENDLUA

; bitwise operators: bit.bxor(a, b) (bnot,band,bor,bxor,brshift,blshift,bxor2,blogic_rshift,tobits,tonumb)
; - removed, these are part of Lua now (since Lua 5.3)
    LUA
        assert(-1 == ~0)
        assert(0xA0C0 == 0xABCD & 0xF0F0)
        assert(0xABCD == 0xA0C1 | 0xAB0C)
        assert(0xA0CC == 0xABCD ~ 0x0B01)
        assert(0xAB00 == 0xAB << 8)
        assert(0xAB == 0xAB00 >> 8)
    ENDLUA

; lpack.c: string.pack, string.unpack
; - removed, part of standard Lua string lib
    LUA
        assert("ABCD" == string.pack("bbbb", 0x41, 0x42, 0x43, 0x44))
        assert(0x4241, 0x4142, 5 == string.unpack("<H>H", "ABAB"))
    ENDLUA
