mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-10-14 15:24:00 -04:00
26 lines
864 B
JavaScript
26 lines
864 B
JavaScript
import assert from "node:assert/strict";
|
|
import { readFileSync } from "node:fs";
|
|
import vm from "node:vm";
|
|
import test from "node:test";
|
|
|
|
const format = vm.createContext({});
|
|
vm.runInContext(readFileSync(new URL("../Common/Format.js", import.meta.url), "utf8").replace(/^\.pragma.*$/m, ""), format);
|
|
|
|
const KB = 1024;
|
|
const MB = KB * 1024;
|
|
const GB = MB * 1024;
|
|
|
|
test("compact rates never show bytes or more than three digits", () => {
|
|
const cases = [
|
|
[0, "0 KB/s", "0K"],
|
|
[1, "1 KB/s", "1K"],
|
|
[999.4 * KB, "999 KB/s", "999K"],
|
|
[999.5 * KB, "1 MB/s", "1M"],
|
|
[1000 * GB, "1 TB/s", "1T"]
|
|
];
|
|
for (const [rate, long, short] of cases) {
|
|
assert.equal(format.formatRateCompact(rate, false), long, `${rate} B/s`);
|
|
assert.equal(format.formatRateCompact(rate, true), short, `${rate} B/s short`);
|
|
}
|
|
});
|