Files
nim/tests/test_compress.nim
zeekay 68037f9ca4 Rebrand Cap'n Proto Nim port to ZAP
Rename the capnp/ module set to zap/ and the capnpc compiler to zapc;
rename all .capnp schemas and fixtures to .zap; update every import,
include guard (isInZap), generated-code emission, exception type
(ZapFormatError), and the macro-generated zapUnpackStructImpl/
zapPackStructImpl identifiers to the ZAP brand. Zero capnp/Cap'n Proto
references remain in source or build files; upstream MIT attribution
(Sandstorm, Michał Zieliński) is preserved.

Raise the nimble nim floor from the fictional 0.12.0 to the locked,
verified 0.15.2 (matches nimenv.cfg/build.sh; code carries fixes through
Nim 0.18). Rewrite TODO.md as honest, source-anchored known-limitations
(two-word intersegment pointers, nested/named-union codegen, RPC
interface inheritance) instead of a bare wishlist.
2026-06-19 23:42:02 -07:00

20 lines
422 B
Nim

import zap, collections
proc check(s: string) =
assert s.len mod 8 == 0, s
let a = compressZap(s)
assert decompressZap(a) == s
for s in ["fooobar!", "\0\0\0\0\0\0\0\0", "\0\0\0\0aaaabbbb\0opp\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", "foobar!foobar!foobar!aaa"]:
check(s)
let data = readFile("/bin/bash")
check(data)
var i = 0
let chunk = 2048*2
while i + chunk <= data.len:
check(data[i..<i + chunk])
i += chunk