Files

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`);
}
});