Files
2026-10-29 11:57:29 +01:00

38 lines
1.4 KiB
JavaScript

// Generated, do not edit. sha256:021a29aa8101638bfe1883f78698f1f023a09f6b14b39dbb9fc4e8d2968c37ae
import { describe, it } from 'node:test';
import assert from 'node:assert/strict';
import { spreidOverKolommen } from '../../client/ui/masonry.js';
describe('spreidOverKolommen', () => {
it('kiest steeds de kortste kolom', () => {
assert.deepEqual(spreidOverKolommen([100, 50, 40, 20, 30], 2), [0, 1, 1, 1, 0]);
});
it('is gewoon round-robin als alles even hoog is', () => {
assert.deepEqual(spreidOverKolommen([10, 10, 10, 10, 10, 10], 3), [0, 1, 2, 0, 1, 2]);
});
it('zet alles in één kolom als er één kolom is', () => {
assert.deepEqual(spreidOverKolommen([5, 1, 9], 1), [0, 0, 0]);
});
it('houdt de kolommen dichter bij elkaar dan round-robin zou doen', () => {
const hoogtes = [120, 10, 10, 10];
const uit = spreidOverKolommen(hoogtes, 3);
const som = [0, 0, 0];
uit.forEach((k, i) => { som[k] += hoogtes[i]; });
assert.deepEqual(uit, [0, 1, 2, 1]);
assert.deepEqual(som, [120, 20, 10]);
});
it('geeft een lege lijst terug voor geen kaarten', () => {
assert.deepEqual(spreidOverKolommen([], 3), []);
});
it('behandelt een onzinnig kolomaantal als één kolom in plaats van om te vallen', () => {
for (const raar of [0, -3, NaN, undefined]) {
assert.deepEqual(spreidOverKolommen([1, 2, 3], raar), [0, 0, 0], `kolommen: ${raar}`);
}
});
});