time for a snapshot
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
import { expect, test } from "bun:test";
|
||||
import { vec } from "./given.ts";
|
||||
import { dot, length, normalize } from "./mathv.ts";
|
||||
|
||||
test("length uses Pythagoras", () => {
|
||||
expect(length(vec(3, 4))).toBe(5);
|
||||
expect(length(vec(0, 0))).toBe(0);
|
||||
});
|
||||
|
||||
test("normalize gives a unit vector in the same direction", () => {
|
||||
const n = normalize(vec(3, 4));
|
||||
expect(n.x).toBeCloseTo(0.6);
|
||||
expect(n.y).toBeCloseTo(0.8);
|
||||
expect(length(n)).toBeCloseTo(1);
|
||||
});
|
||||
|
||||
test("normalize of the zero vector is (0,0), not NaN", () => {
|
||||
const n = normalize(vec(0, 0));
|
||||
expect(n).toEqual({ x: 0, y: 0 });
|
||||
expect(Number.isNaN(n.x)).toBe(false);
|
||||
expect(Number.isNaN(n.y)).toBe(false);
|
||||
});
|
||||
|
||||
test("dot product", () => {
|
||||
expect(dot(vec(1, 0), vec(0, 1))).toBe(0); // perpendicular
|
||||
expect(dot(vec(2, 3), vec(4, 5))).toBe(23); // 8 + 15
|
||||
});
|
||||
Reference in New Issue
Block a user