import {test} from 'node:test';
import assert from 'node:assert/strict';
import {clamp, sum, label, percent, total, size} from './main.ts';
test('clamp uses 0 and 100 as defaults', () => {
assert.equal(clamp(150), 100, `clamp(150) returned ${clamp(150)}`);
assert.equal(clamp(-5), 0, `clamp(-5) returned ${clamp(-5)}`);
assert.equal(percent, 100, `percent is ${percent}`);
});
test('clamp takes its own limits, and undefined keeps a default', () => {
assert.equal(clamp(15, 20), 20, `clamp(15, 20) returned ${clamp(15, 20)}`);
assert.equal(clamp(15, undefined, 10), 10, `clamp(15, undefined, 10) returned ${clamp(15, undefined, 10)}`);
});
test('sum takes any number of numbers', () => {
assert.equal(sum(), 0, `sum() returned ${sum()}`);
assert.equal(sum(3, 4.5, 2), 9.5, `sum(3, 4.5, 2) returned ${sum(3, 4.5, 2)}`);
assert.equal(total, 9.5, `total is ${total}`);
});
test('label leaves out a missing unit', () => {
assert.equal(label(5), '5', `label(5) returned ${JSON.stringify(label(5))}`);
assert.equal(label(5, 'kg'), '5 kg', `label(5, 'kg') returned ${JSON.stringify(label(5, 'kg'))}`);
assert.equal(size, '5', `size is ${JSON.stringify(size)}`);
});