Files
nage/engine/lib/RingBuffer.test.ts
T
2026-09-04 13:57:52 +02:00

21 lines
529 B
TypeScript

import { expect, test } from "vitest";
import { claim, createRingBuffer, type RingBuffer } from "./RingBuffer.ts";
test("RingBuffer", () => {
expect(() => createRingBuffer(3, () => ({}))).toThrow(
"size must be a power of two",
);
const ring: RingBuffer<object> = createRingBuffer(4, () => ({}));
expect(ring.size).toBe(4);
expect(ring.cursor).toBe(0);
expect(ring.buffer.length).toBe(4);
for (let i = 0; i < 8; i++) {
expect(claim(ring, (_) => {})).toBe(ring.buffer[i % 4]);
}
expect(ring.cursor).toBe(0);
});