UNPKG

@grandom/engines-umd

Version:
13 lines (12 loc) 2.44 kB
/*! * @grandom/engines v4.0.1 * https://github.com/grandom-library/grandom-js/tree/main/packages/engines#readme * * Copyright (c) 2023 Richard King <richrdkng@gmail.com> (www.richrdkng.com) * Released under the MIT License * https://github.com/grandom-library/grandom-js/tree/main/packages/engines#readme/blob/main/LICENSE * * Date: 2023-09-06T22:13:45.474Z */ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).grandomEnginesBasic=e()}(this,(function(){"use strict";let t=class t{constructor(t){this._name=t}_next(){throw new Error("_next() must be implemented.")}get name(){return this._name}nextBoolean(){return this._next()<.5}nextInteger(e=t.DEFAULT_INTEGER_MINIMUM,n=t.DEFAULT_INTEGER_MAXIMUM,M=t.DEFAULT_INCLUDE_MINIMUM,I=t.DEFAULT_INCLUDE_MAXIMUM){let r=0,_=0;return M&&!I?(r=0,_=0):M&&I?_=1:!M&&I?r=1:(r=1,_=-1),Math.floor(this._next()*(n-e+_))+e+r}nextFloat(e=t.DEFAULT_FLOAT_MINIMUM,n=t.DEFAULT_FLOAT_MAXIMUM,M=t.DEFAULT_INCLUDE_MINIMUM,I=t.DEFAULT_INCLUDE_MAXIMUM){const r=this._next()*(n-e)+e;if(M&&!I)return r;{const t=r+Number.EPSILON*r;return M&&I?t<n?t:n:!M&&I?t>e?t:e+Number.EPSILON:t<=e?e+Number.EPSILON:t>=n?n-Number.EPSILON:t}}nextBigInt(e=t.DEFAULT_BIGINT_MINIMUM,n=t.DEFAULT_BIGINT_MAXIMUM,M=t.DEFAULT_INCLUDE_MINIMUM,I=t.DEFAULT_INCLUDE_MAXIMUM){let r=0n,_=0n;return M&&!I?(r=0n,_=0n):M&&I?_=1n:!M&&I?r=1n:(r=1n,_=-1n),BigInt(Math.floor(this._next()*Number.MAX_SAFE_INTEGER))*(BigInt(n)-BigInt(e)+_)/BigInt(Number.MAX_SAFE_INTEGER)+BigInt(e)+r}nextString(t,e){const n=e.length;let M="";for(let I=0;I<t;I++)M+=e.charAt(Math.floor(this._next()*n));return M}nextWeighted(t,e){let n=0;for(let t=0;t<e.length;t++)n+=e[t];const M=this._next()*n;let I=0;for(let n=0;n<t.length;n++)if(I+=e[n],I>M)return t[n];return t[t.length-1]}pickArray(t){return t[Math.floor(this._next()*t.length)]}shuffleArray(t){let e,n;for(let M=t.length-1;M>0;M--)e=Math.floor(this._next()*(M+1)),n=t[M],t[M]=t[e],t[e]=n}};t.DEFAULT_INCLUDE_MINIMUM=!0,t.DEFAULT_INCLUDE_MAXIMUM=!1,t.DEFAULT_FLOAT_MINIMUM=0,t.DEFAULT_FLOAT_MAXIMUM=1,t.DEFAULT_INTEGER_MINIMUM=0,t.DEFAULT_INTEGER_MAXIMUM=4294967296,t.DEFAULT_BIGINT_MINIMUM=0n,t.DEFAULT_BIGINT_MAXIMUM=18446744073709551616n;var e=t;return class extends e{constructor(){super("math-random")}_next(){return Math.random()}}})); //# sourceMappingURL=min.basic.js.map