Guest User

Untitled

a guest
May 24th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.42 KB | None | 0 0
  1. // example code of inflate.mjs
  2. // $ node --no-warnings --experimental-modules example.mjs
  3.  
  4. // check with zlib of node.js
  5. import zlib from "zlib";
  6. import bufferModule from "buffer";
  7. const {Buffer} = bufferModule;
  8.  
  9. import {inflate, inflateRaw, BitReader} from "./inflate.mjs";
  10. {
  11. // dynamic mode
  12. // note: zlib compress with dynamic mode required larger data
  13. const data = "\0".repeat(10000);
  14. const compress = zlib.deflateRawSync(data, {level: 2});
  15. const decompressed = inflateRaw(new BitReader(compress));
  16. console.assert(decompressed.length === data.length);
  17. console.assert(decompressed.every(v => v === 0));
  18. }
  19. {
  20. // fixed code mode
  21. const data = "Hello World!";
  22. const compress = zlib.deflateRawSync(data, {level: 1});
  23. const decompressed = inflateRaw(new BitReader(compress));
  24. console.log(decompressed.length);
  25. console.log(Buffer.from(decompressed).toString());
  26. }
  27. {
  28. // no compress mode with multi blocks
  29. const data = "\0".repeat(0x20000);
  30. const compress = zlib.deflateRawSync(data, {level: 0});
  31. const decompressed = inflateRaw(new BitReader(compress));
  32. console.assert(decompressed.length === data.length);
  33. console.assert(decompressed.every(v => v === 0));
  34. }
  35. {
  36. // zlib inflate
  37. //const data = "\0".repeat(10000);
  38. const data = "Hello World!";
  39. const compress = zlib.deflateSync(data, {level: 2});
  40. const decompressed = inflate(new BitReader(compress));
  41. console.assert(Buffer.from(decompressed).toString() === data);
  42. }
Add Comment
Please, Sign In to add comment