2025-07-16 22:29:28 +08:00
|
|
|
"use strict";
|
|
|
|
|
2019-04-13 00:29:41 +08:00
|
|
|
const { numberToIdentifier } = require("../lib/Template");
|
2025-07-03 17:06:45 +08:00
|
|
|
const numberHash = require("../lib/util/numberHash");
|
2019-02-20 18:32:12 +08:00
|
|
|
|
|
|
|
describe("numberHash", () => {
|
|
|
|
for (const n of [10, 100, 1000, 10000]) {
|
|
|
|
it("should eventually fill nearly the complete range up to n", () => {
|
|
|
|
const set = new Set();
|
|
|
|
for (let i = 0; i < n * 200; i++) {
|
2019-04-13 00:29:41 +08:00
|
|
|
set.add(numberHash(numberToIdentifier(i), n));
|
2019-02-20 18:32:12 +08:00
|
|
|
if (set.size >= n - 1) break;
|
|
|
|
}
|
|
|
|
expect(set.size).toBeGreaterThanOrEqual(n - 1);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|