diff --git a/engine/lib/mulberry32.test.ts b/engine/lib/mulberry32.test.ts new file mode 100644 index 0000000..3cb57a8 --- /dev/null +++ b/engine/lib/mulberry32.test.ts @@ -0,0 +1,14 @@ +import { expect, test } from "vitest"; +import { mulberry32 } from "./mulberry32.ts"; + +test("mulberry32", () => { + const nextA = mulberry32(1); + const nextA2 = mulberry32(1); + const nextB = mulberry32(2); + const a1 = nextA(); + + expect(a1).toBe(0.6270739405881613); + expect(nextA2()).toBe(a1); + expect(nextA()).not.toBe(a1); + expect(nextB()).not.toBe(a1); +}); diff --git a/engine/lib/mulberry32.ts b/engine/lib/mulberry32.ts index 0cc4db4..b1ecb57 100644 --- a/engine/lib/mulberry32.ts +++ b/engine/lib/mulberry32.ts @@ -1,7 +1,7 @@ /** * @see https://github.com/cprosche/mulberry32 */ -export function mulberry32(a: number) { +export function mulberry32(a: number): () => number { return () => { a |= 0; a = (a + 0x6d2b79f5) | 0;