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