change sizeof(a_cast) to sizeof(void*)
[liba.git] / lua / test / crc16.lua
blobecec82db8dc146883246c64f6b38fda95e3e8d07
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.crc16))
8 local ctx = a.crc16.new(0x1021)
9 assert(ctx)
10 local ctx = a.crc16.new(0x8005, true)
11 assert(ctx)
12 assert(type(ctx.table) == "table")
13 test.dir(getmetatable(ctx))
14 local text = "0123456789"
15 ctx:gen(0x1021)
16 assert(a.crc16.eval(ctx, text) == 0x9C58)
17 assert(a.crc16.eval(ctx, a.crc16.pack(ctx, text)) == 0)
18 ctx:gen(0x8005, true)
19 assert(ctx:eval(text) == 0x443D)
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.crc16
30 ---@field __name string
31 ---@field __call function
32 ---@field __index table
33 ---@field __newindex table