import {test} from 'node:test';
import assert from 'node:assert/strict';
import {clamp, sum, label, percent, total, size} from './main.ts';
test('clamp nutzt 0 und 100 als Defaults', () => {
assert.equal(clamp(150), 100, `clamp(150) gab ${clamp(150)} zurück`);
assert.equal(clamp(-5), 0, `clamp(-5) gab ${clamp(-5)} zurück`);
assert.equal(percent, 100, `percent ist ${percent}`);
});
test('clamp nimmt eigene Grenzen, und undefined behält einen Default', () => {
assert.equal(clamp(15, 20), 20, `clamp(15, 20) gab ${clamp(15, 20)} zurück`);
assert.equal(clamp(15, undefined, 10), 10, `clamp(15, undefined, 10) gab ${clamp(15, undefined, 10)} zurück`);
});
test('sum nimmt beliebig viele Zahlen', () => {
assert.equal(sum(), 0, `sum() gab ${sum()} zurück`);
assert.equal(sum(3, 4.5, 2), 9.5, `sum(3, 4.5, 2) gab ${sum(3, 4.5, 2)} zurück`);
assert.equal(total, 9.5, `total ist ${total}`);
});
test('label lässt eine fehlende Einheit weg', () => {
assert.equal(label(5), '5', `label(5) gab ${JSON.stringify(label(5))} zurück`);
assert.equal(label(5, 'kg'), '5 kg', `label(5, 'kg') gab ${JSON.stringify(label(5, 'kg'))} zurück`);
assert.equal(size, '5', `size ist ${JSON.stringify(size)}`);
});