import { describe, expect, it } from "vitest"; import { frameToTime, timeToFrame } from "./frame-utils"; describe("timeToFrame", () => { it("round-trips every frame through frameToTime", () => { for (const fps of [23.976, 24, 25, 29.97, 30]) { for (let f = 0; f < 5000; f++) { expect(timeToFrame(frameToTime(f, fps), fps)).toBe(f); } } }); it("reads a seek target rounded to microseconds as that frame", () => { // Browsers can report currentTime rounded, e.g. 4/24 as 0.166666 expect(timeToFrame(0.166666, 24)).toBe(4); }); it("still floors positions inside a frame", () => { expect(timeToFrame(4.5 / 24, 24)).toBe(4); expect(timeToFrame(4.99 / 24, 24)).toBe(4); }); });