42 lines
1.3 KiB
TypeScript
42 lines
1.3 KiB
TypeScript
import { describe, expect, it } from "@suaveplan/testing/runner";
|
|
import {
|
|
clamp,
|
|
isFiniteNumber,
|
|
roundAlpha,
|
|
roundChannel,
|
|
roundPercent,
|
|
} from "./utils.js";
|
|
|
|
describe("utils", () => {
|
|
it("clamp restricts to range", { timeout: 5000 }, () => {
|
|
expect(clamp(5, 0, 10)).toBe(5);
|
|
expect(clamp(-5, 0, 10)).toBe(0);
|
|
expect(clamp(15, 0, 10)).toBe(10);
|
|
});
|
|
|
|
it("isFiniteNumber rejects non-finite", { timeout: 5000 }, () => {
|
|
expect(isFiniteNumber(5)).toBe(true);
|
|
expect(isFiniteNumber(Number.NaN)).toBe(false);
|
|
expect(isFiniteNumber(Number.POSITIVE_INFINITY)).toBe(false);
|
|
expect(isFiniteNumber("5")).toBe(false);
|
|
});
|
|
|
|
it("roundChannel clamps to 0-255", { timeout: 5000 }, () => {
|
|
expect(roundChannel(128.6)).toBe(129);
|
|
expect(roundChannel(-10)).toBe(0);
|
|
expect(roundChannel(300)).toBe(255);
|
|
});
|
|
|
|
it("roundPercent clamps to 0-100", { timeout: 5000 }, () => {
|
|
expect(roundPercent(50.4)).toBe(50);
|
|
expect(roundPercent(-5)).toBe(0);
|
|
expect(roundPercent(105)).toBe(100);
|
|
});
|
|
|
|
it("roundAlpha clamps to 0-1", { timeout: 5000 }, () => {
|
|
expect(roundAlpha(0.5)).toBe(0.5);
|
|
expect(roundAlpha(-0.1)).toBe(0);
|
|
expect(roundAlpha(1.1)).toBe(1);
|
|
});
|
|
});
|