themer
Version:
Customizable theme creator for editors, terminals, wallpaper, and more.
29 lines • 879 B
JavaScript
import test from 'ava';
import { weightedRandom } from './index.js';
test('weightedRandom', (t) => {
const testData = new Map([
['a', 1],
['b', 3],
['c', 1],
]);
const total = [...testData.values()].reduce((total, weight) => total + weight, 0);
const samples = 1000;
let aFrequency = 0, bFrequency = 0, cFrequency = 0;
for (let i = 0; i < total * samples; i++) {
switch (weightedRandom(testData)) {
case 'a':
aFrequency++;
break;
case 'b':
bFrequency++;
break;
case 'c':
cFrequency++;
break;
}
}
t.is(Math.round(aFrequency / samples), 1);
t.is(Math.round(bFrequency / samples), 3);
t.is(Math.round(cFrequency / samples), 1);
});
//# sourceMappingURL=index.spec.js.map