UNPKG

@grandom/boolean-umd

Version:
13 lines (12 loc) 2.65 kB
/*! * @grandom/boolean v1.4.7 * https://github.com/grandom-library/grandom-js/tree/main/packages/boolean#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/boolean#readme/blob/main/LICENSE * * Date: 2023-09-06T22:04:47.378Z */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).grandomBooleanCore=t()}(this,(function(){"use strict";class e{constructor(e){this._name=e}_next(){throw new Error("_next() must be implemented.")}get name(){return this._name}nextBoolean(){return this._next()<.5}nextInteger(t=e.DEFAULT_INTEGER_MINIMUM,n=e.DEFAULT_INTEGER_MAXIMUM,r=e.DEFAULT_INCLUDE_MINIMUM,M=e.DEFAULT_INCLUDE_MAXIMUM){let I=0,_=0;return r&&!M?(I=0,_=0):r&&M?_=1:!r&&M?I=1:(I=1,_=-1),Math.floor(this._next()*(n-t+_))+t+I}nextFloat(t=e.DEFAULT_FLOAT_MINIMUM,n=e.DEFAULT_FLOAT_MAXIMUM,r=e.DEFAULT_INCLUDE_MINIMUM,M=e.DEFAULT_INCLUDE_MAXIMUM){const I=this._next()*(n-t)+t;if(r&&!M)return I;{const e=I+Number.EPSILON*I;return r&&M?e<n?e:n:!r&&M?e>t?e:t+Number.EPSILON:e<=t?t+Number.EPSILON:e>=n?n-Number.EPSILON:e}}nextBigInt(t=e.DEFAULT_BIGINT_MINIMUM,n=e.DEFAULT_BIGINT_MAXIMUM,r=e.DEFAULT_INCLUDE_MINIMUM,M=e.DEFAULT_INCLUDE_MAXIMUM){let I=0n,_=0n;return r&&!M?(I=0n,_=0n):r&&M?_=1n:!r&&M?I=1n:(I=1n,_=-1n),BigInt(Math.floor(this._next()*Number.MAX_SAFE_INTEGER))*(BigInt(n)-BigInt(t)+_)/BigInt(Number.MAX_SAFE_INTEGER)+BigInt(t)+I}nextString(e,t){const n=t.length;let r="";for(let M=0;M<e;M++)r+=t.charAt(Math.floor(this._next()*n));return r}nextWeighted(e,t){let n=0;for(let e=0;e<t.length;e++)n+=t[e];const r=this._next()*n;let M=0;for(let n=0;n<e.length;n++)if(M+=t[n],M>r)return e[n];return e[e.length-1]}pickArray(e){return e[Math.floor(this._next()*e.length)]}shuffleArray(e){let t,n;for(let r=e.length-1;r>0;r--)t=Math.floor(this._next()*(r+1)),n=e[r],e[r]=e[t],e[t]=n}}e.DEFAULT_INCLUDE_MINIMUM=!0,e.DEFAULT_INCLUDE_MAXIMUM=!1,e.DEFAULT_FLOAT_MINIMUM=0,e.DEFAULT_FLOAT_MAXIMUM=1,e.DEFAULT_INTEGER_MINIMUM=0,e.DEFAULT_INTEGER_MAXIMUM=4294967296,e.DEFAULT_BIGINT_MINIMUM=0n,e.DEFAULT_BIGINT_MAXIMUM=18446744073709551616n;var t=class{constructor(e){this._engine=e}get engine(){return this._engine}};return class extends t{boolean(e){if(void 0!==e){if("number"!=typeof e)throw new TypeError(`bias must be a number, got: ${typeof e}.`);if(e==e)return e<0?e=0:e>1&&(e=1),this._engine.nextFloat()<e}return this._engine.nextBoolean()}}})); //# sourceMappingURL=core.min.js.map