fix constructor of version with a string argument
[liba.git] / lua / test / crc64.lua
blob218040b8a7b8657ea25bd695b0c1915691d97765
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.crc64))
8 local ctx = a.crc64.new("0x000000000000001B")
9 assert(ctx)
10 local ctx = a.crc64.new("0x42F0E1EBA9EA3693", true)
11 assert(ctx)
12 assert(type(ctx.table) == "table")
13 test.dir(getmetatable(ctx))
14 local text = "0123456789"
15 ctx:gen("0x000000000000001B")
16 assert(a.crc64.eval(ctx, text) == "0xE4FFBEA588AFC790")
17 assert(tonumber(a.crc64.eval(ctx, a.crc64.pack(ctx, text))) == 0)
18 ctx:gen("0x42F0E1EBA9EA3693", true)
19 assert(ctx:eval(text) == "0xDA60676A5CDE0008")
20 assert(tonumber(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.crc64
30 ---@field __name string
31 ---@field __call function
32 ---@field __index table
33 ---@field __newindex table