beta-0.89.2
[luatex.git] / source / texk / web2c / luatexdir / luazlib / test_zlib.lua
blob9368b6aef8ede9ece6ab3eb24a2b8589c0beb1a6
1 -- $Id: test_zlib.lua,v 1.3 2004/07/22 19:10:47 tngd Exp $
2 -- zlib = loadlib("./lzlib.so", "luaopen_zlib")()
5 local function line(header, c)
6 header = header or ''
7 c = c or '-'
8 print(string.rep(string.sub(c, 1, 1), 78 - string.len(header))..header)
9 end
11 local function ipart(value)
12 return value - math.mod(value, 1)
13 end
15 local function bitvalues(value, bstart, num)
16 value = ipart(value / 2^bstart)
17 return math.mod(value, 2^num)
18 end
20 line(' zlib '..zlib.version(), '=')
22 line(' adler32')
23 local adler = zlib.adler32()
24 print('adler32 init : '..adler)
25 adler = zlib.adler32(adler, 'some text')
26 print('updated adler: '..adler)
27 adler = zlib.adler32(adler, 'some text')
28 print('updated adler: '..adler)
29 adler = zlib.adler32(adler, 'some text')
30 print('updated adler: '..adler)
31 adler = zlib.adler32(adler, 'some text')
32 print('updated adler: '..adler)
33 adler = zlib.adler32(adler, 'some text')
34 print('updated adler: '..adler)
35 adler = zlib.adler32(adler, 'some textd')
36 print('updated adler: '..adler)
38 line(' crc32')
39 local crc = zlib.crc32()
40 print('crc32 init : '..crc)
41 crc = zlib.crc32(crc, 'some text')
42 print('updated crc: '..crc)
43 crc = zlib.crc32(crc, 'some text')
44 print('updated crc: '..crc)
45 crc = zlib.crc32(crc, 'some text')
46 print('updated crc: '..crc)
47 crc = zlib.crc32(crc, 'some text')
48 print('updated crc: '..crc)
49 crc = zlib.crc32(crc, 'some text')
50 print('updated crc: '..crc)
51 crc = zlib.crc32(crc, 'some textd')
52 print('updated crc: '..crc)
55 line(' deflate/inflate')
56 local us
57 f = io.open('lzlib.c') -- f = io.open('../all.tar')
58 us = f:read('*a')
59 f:close()
61 do -- local block
63 local f, cs, zd, zi, aux_res, res, ret, count
65 print('file length : '..string.len(us))
67 cs = ''
68 zd = zlib.compressobj(1)
69 print('deflate stream : '..tostring(zd))
71 cs = cs .. zd:compress(string.sub(us, 1, string.len(us)/2))
72 cs = cs .. zd:compress(string.sub(us, string.len(us)/2+1))
73 cs = cs .. zd:flush()
75 print('compressed length : '..string.len(cs))
76 print('compressed adler : '..tostring(zd:adler()))
77 zd:close()
79 zi = zlib.decompressobj()
80 print('inflate stream : '..tostring(zi))
81 res = ''
82 res = res .. zi:decompress(string.sub(cs, 1, 10))
83 res = res .. zi:decompress(string.sub(cs, 11))
84 res = res .. zi:flush()
85 print('uncompressed length : '..string.len(res))
86 print('uncompressed adler : '..tostring(zi:adler()))
87 zi:close()
88 print('result == uncompressed : '..tostring(res == us))
89 print('compression ratio : '..tostring(string.len(us)/string.len(cs)))
91 end -- local block
92 collectgarbage()
94 line(' compress/uncompress')
95 do -- local block
96 local cs, res
97 print('file length : '..string.len(us))
98 cs = zlib.compress(us,1)
99 print('compressed length : '..string.len(cs))
100 res = zlib.decompress(cs)
101 print('compressed length : '..string.len(res))
102 print('result == uncompressed : '..tostring(res == us))
103 print('compression ratio : '..tostring(string.len(us)/string.len(cs)))
104 end -- local block
106 line(' zlib '..zlib.version(), '=')