change sizeof(a_cast) to sizeof(void*)
[liba.git] / lua / test / crc8.lua
blob7ac95515eeae983f6efaa1bf0370d16cde5e5bd6
1 #!/usr/bin/env lua
3 ---@diagnostic disable: redefined-local
4 package.path = arg[0]:sub(0, -arg[0]:match("([^/\\]*)$"):len() - 1) .. "?.lua;" .. package.path
5 local test = require("test")
6 local a = require("liba")
7 test.dir(getmetatable(a.crc8))
8 local ctx = a.crc8.new(0x07)
9 assert(ctx)
10 local ctx = a.crc8.new(0x31, true)
11 assert(ctx)
12 assert(type(ctx.table) == "table")
13 test.dir(getmetatable(ctx))
14 local text = "0123456789"
15 ctx:gen(0x07)
16 assert(a.crc8.eval(ctx, text) == 0x45)
17 assert(a.crc8.eval(ctx, a.crc8.pack(ctx, text)) == 0)
18 ctx:gen(0x31, true)
19 assert(ctx:eval(text) == 0x75)
20 assert(ctx:eval(ctx:pack(text)) == 0)
21 ctx.__name = nil
22 assert(ctx.__name)
23 ctx.__call = nil
24 assert(ctx.__call)
25 ctx.__index = nil
26 assert(ctx.__index)
27 ctx.__newindex = nil
28 assert(ctx.__newindex)
29 ---@class a.crc8
30 ---@field __name string
31 ---@field __call function
32 ---@field __index table
33 ---@field __newindex table