36 lines
1002 B
TypeScript
36 lines
1002 B
TypeScript
import { assert } from "jsr:@std/assert";
|
|
import { describe, it } from "jsr:@std/testing/bdd";
|
|
import { TrackSystem } from "../track/system.ts";
|
|
import { StraightTrack } from "../track/shapes.ts";
|
|
import { testPerformance } from "./bench.ts";
|
|
import { setDefaultContext } from "../lib/context.ts";
|
|
|
|
/**
|
|
* Tests if a function can run a given number of iterations within a target frame time.
|
|
* @param fn The function to test.
|
|
* @param iterations Number of times to run the function per frame.
|
|
* @param fps Target frames per second.
|
|
*/
|
|
Deno.test("Track System Benchmark", () => {
|
|
console.log("Track System Benchmark - run within frame time");
|
|
const mockDoodler = {
|
|
fillCircle: () => {},
|
|
line: () => {},
|
|
};
|
|
setDefaultContext({
|
|
doodler: mockDoodler,
|
|
});
|
|
const mockTrack = new TrackSystem([]);
|
|
for (let i = 0; i < 100; i++) {
|
|
mockTrack.registerSegment(new StraightTrack());
|
|
}
|
|
|
|
testPerformance(
|
|
() => {
|
|
mockTrack.findEnds();
|
|
},
|
|
10000,
|
|
60,
|
|
);
|
|
});
|