math bench

This commit is contained in:
Emmaline Autumn 2025-02-17 17:48:04 -07:00
parent 239f1ac766
commit 20e6174658
3 changed files with 53 additions and 1 deletions

20
deno.lock generated
View File

@ -2,6 +2,10 @@
"version": "4", "version": "4",
"specifiers": { "specifiers": {
"jsr:@bearmetal/doodler@0.0.5-c": "0.0.5-c", "jsr:@bearmetal/doodler@0.0.5-c": "0.0.5-c",
"jsr:@std/assert@*": "1.0.10",
"jsr:@std/assert@^1.0.10": "1.0.10",
"jsr:@std/internal@^1.0.5": "1.0.5",
"jsr:@std/testing@*": "1.0.8",
"npm:@deno/vite-plugin@^1.0.4": "1.0.4_vite@6.1.0", "npm:@deno/vite-plugin@^1.0.4": "1.0.4_vite@6.1.0",
"npm:@types/node@*": "22.5.4", "npm:@types/node@*": "22.5.4",
"npm:vite@*": "6.1.0", "npm:vite@*": "6.1.0",
@ -11,6 +15,22 @@
"jsr": { "jsr": {
"@bearmetal/doodler@0.0.5-c": { "@bearmetal/doodler@0.0.5-c": {
"integrity": "34b0db85af1393b1b01622915963a8b33ee923c14b381afe9c771efd3d631cf1" "integrity": "34b0db85af1393b1b01622915963a8b33ee923c14b381afe9c771efd3d631cf1"
},
"@std/assert@1.0.10": {
"integrity": "59b5cbac5bd55459a19045d95cc7c2ff787b4f8527c0dd195078ff6f9481fbb3",
"dependencies": [
"jsr:@std/internal"
]
},
"@std/internal@1.0.5": {
"integrity": "54a546004f769c1ac9e025abd15a76b6671ddc9687e2313b67376125650dc7ba"
},
"@std/testing@1.0.8": {
"integrity": "ceef535808fb7568e91b0f8263599bd29b1c5603ffb0377227f00a8ca9fe42a2",
"dependencies": [
"jsr:@std/assert@^1.0.10",
"jsr:@std/internal"
]
} }
}, },
"npm": { "npm": {

View File

@ -0,0 +1,32 @@
/// <reference no-default-lib="true" />
/// <reference lib="esnext" />
/// <reference lib="dom" />
/// <reference lib="dom.iterable" />
/// <reference lib="dom.asynciterable" />
/// <reference lib="deno.ns" />
import { averageAngles, lerpAngle } from "../math/lerp.ts";
import { testPerformance } from "./bench.ts";
Deno.test("angle math", () => {
console.log("Average angles");
testPerformance(
() => {
const a = Math.random() * Math.PI * 2;
const b = Math.random() * Math.PI * 2;
const avg = averageAngles(a, b);
},
10000,
60,
);
console.log("Lerp angles");
testPerformance(
() => {
const a = Math.random() * Math.PI * 2;
const b = Math.random() * Math.PI * 2;
const avg = lerpAngle(a, b, .5);
},
10000,
60,
);
});

View File

@ -310,7 +310,7 @@ export class TrainCar extends Debuggable {
for (const p of ps) { for (const p of ps) {
doodler.dot(p.pos, { color: "green" }); doodler.dot(p.pos, { color: "green" });
doodler.fillText( doodler.fillText(
p.angle.toFixed(1).toString(), p.angle.toFixed(2).toString(),
p.pos.copy().add(0, 20), p.pos.copy().add(0, 20),
100, 100,
{ {