summaryrefslogtreecommitdiff
path: root/test/1-size.ts
diff options
context:
space:
mode:
Diffstat (limited to 'test/1-size.ts')
-rw-r--r--test/1-size.ts24
1 files changed, 24 insertions, 0 deletions
diff --git a/test/1-size.ts b/test/1-size.ts
new file mode 100644
index 0000000..c2cc247
--- /dev/null
+++ b/test/1-size.ts
@@ -0,0 +1,24 @@
+import { testSuites, workers, bClone } from './util';
+import { writeFileSync } from 'fs';
+import { join } from 'path';
+import { performance } from 'perf_hooks';
+import * as assert from 'uvu/assert';
+
+const sizePerf: Record<string, Record<string, [number, number]>> = {};
+
+testSuites({
+ async main(file, name) {
+ sizePerf[name] = {};
+ for (const lib of (['fflate', 'pako', 'uzip', 'zlib'] as const)) {
+ const clone = bClone(file);
+ const ts = performance.now();
+ sizePerf[name][lib] = [(await workers[lib].deflate([clone, { level: 9 }], [clone.buffer])).length, performance.now() - ts];
+ }
+ for (const lib of ['pako', 'uzip', 'zlib']) {
+ // Less than 5% larger
+ assert.ok(((sizePerf[name].fflate[0] - sizePerf[name][lib][0]) / sizePerf[name][lib][0]) < 0.05);
+ }
+ }
+}).then(() => {
+ writeFileSync(join(__dirname, 'results', 'longTimings.json'), JSON.stringify(sizePerf, null, 2));
+}) \ No newline at end of file