UNPKG

@lazy-random/df-array

Version:
1 lines 14.6 kB
{"version":3,"file":"index.cjs.development.cjs","sources":["../src/util/options.ts","../src/array-index-one.ts","../src/array-index.ts","../src/array-shuffle.ts","../src/array-unique.ts","../src/array-fill.ts"],"sourcesContent":["import { ITSArrayListMaybeReadonly } from 'ts-type/lib/type/base';\nimport { expect } from '@lazy-random/expect';\n\nexport function _handleStartEnd<T extends ITSArrayListMaybeReadonly<unknown>>(arr: T, start: number = 0, end?: number, disableCheck?: boolean)\n{\n\tconst len = arr.length;\n\tconst enableCheck = !disableCheck;\n\n\tstart = Math.max(Math.floor(start), 0);\n\n\tif (typeof end !== 'undefined' && end !== null)\n\t{\n\t\tend = Math.floor(end);\n\t\tenableCheck && expect(end).integer\n\t\t\t.gt(start + 1, `END(${end}) should greater than START(${start}+1)`)\n\t\t\t.gt(0)\n\t\t\t//.gt(start, `END(${end}) should greater than START(${start})`)\n\t\t;\n\t}\n\n\tend = Math.min(Math.max(0, end ?? len), len);\n\n\tenableCheck && expect(end, `END(${end})`).integer.gte(0).lte(len);\n\tenableCheck && expect(start, `START(${start})`).integer.gte(0).lt(end);\n\n\treturn {\n\t\tstart,\n\t\tend,\n\t\tlen,\n\t}\n}\n","import { IRNGLike } from '@lazy-random/rng-abstract-core';\nimport { ITSArrayListMaybeReadonly } from 'ts-type/lib/type/base';\nimport { _handleStartEnd } from './util/options';\nimport { int } from '@lazy-random/util-distributions';\n\n/**\n * return index number form array\n */\nexport function dfArrayIndexOne<T extends ITSArrayListMaybeReadonly<unknown>>(random: IRNGLike,\n\tarr: T,\n\tstart: number = 0,\n\tend?: number\n)\n{\n\t({\n\t\tstart,\n\t\tend,\n\t} = _handleStartEnd(arr, start, end));\n\n\tif (start === end - 1)\n\t{\n\t\treturn () => start\n\t}\n\n\treturn () =>\n\t{\n\t\treturn int(random, start, end)\n\t}\n}\n\nexport default dfArrayIndexOne\n","import { expect } from '@lazy-random/expect';\nimport { IRNGLike } from '@lazy-random/rng-abstract';\nimport { _handleStartEnd } from './util/options';\nimport { dfArrayIndexOne } from './array-index-one';\nimport { ITSArrayListMaybeReadonly } from 'ts-type/lib/type/base';\n\n/**\n * return index list form array\n */\nexport function dfArrayIndex<T extends ITSArrayListMaybeReadonly<unknown>>(random: IRNGLike, arr: T, size: number = 1, start: number = 0, end?: number)\n{\n\texpect(size, `size`).integer.gt(0);\n\texpect(arr.length, `arr.length`).integer.gt(0);\n\n\tconst fn = dfArrayIndexOne(random, arr, start, end);\n\n\tlet len: number;\n\n\t({\n\t\tstart,\n\t\tend,\n\t\tlen,\n\t} = _handleStartEnd(arr, start, end, true));\n\n\tlet size_runtime = Math.max(Math.min((end - start), len, size), 0);\n\n\texpect(size_runtime, `size_runtime(${size_runtime})`).lte(size).gt(0)\n\n\tsize = size_runtime;\n\n\treturn () =>\n\t{\n\t\t/**\n\t\t * reset size_runtime\n\t\t */\n\t\tsize_runtime = size;\n\n\t\tlet ids: number[] = [];\n\t\tlet prev: number;\n\n\t\tLABEL_TOP: do\n\t\t{\n\t\t\tlet i = fn()\n\n\t\t\tif (prev === i || ids.includes(i))\n\t\t\t{\n\t\t\t\tcontinue LABEL_TOP;\n\t\t\t}\n\n\t\t\tids.push(prev = i);\n\t\t\t--size_runtime;\n\t\t}\n\t\twhile (size_runtime > 0);\n\n\t\treturn ids;\n\t}\n}\n\nexport default dfArrayIndex\n","import { ITSArrayLikeWriteable } from 'ts-type/lib/generic';\nimport { TypedArray } from 'typedarray-dts';\nimport { swapAlgorithm2 } from '@lazy-random/array-algorithm';\nimport { randIndex as _randIndex } from '@lazy-random/util-distributions';\nimport { IRNGLike } from '@lazy-random/rng-abstract';\nimport { ITSArrayListMaybeReadonly } from 'ts-type/lib/type/base';\n\nexport function dfArrayShuffle<T extends ITSArrayLikeWriteable<any> | TypedArray | Buffer | ITSArrayListMaybeReadonly<any>>(random: IRNGLike, arr: T, overwrite?: boolean): () => T\n{\n\tconst randIndex = (len: number) =>\n\t{\n\t\treturn _randIndex(random, len)\n\t};\n\n\tif (!overwrite)\n\t{\n\t\tlet cloneArrayLike: (arr: T) => T;\n\n\t\tif (Buffer.isBuffer(arr))\n\t\t{\n\t\t\t// @ts-ignore\n\t\t\tcloneArrayLike = (arr) =>\n\t\t\t{\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn Buffer.from(arr)\n\t\t\t};\n\t\t}\n\t\telse\n\t\t{\n\t\t\tcloneArrayLike = (arr) =>\n\t\t\t{\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn arr.slice()\n\t\t\t};\n\t\t}\n\n\t\treturn (): T =>\n\t\t{\n\t\t\treturn swapAlgorithm2(cloneArrayLike(arr), true, randIndex)\n\t\t}\n\t}\n\n\treturn (): T =>\n\t{\n\t\treturn swapAlgorithm2(arr, true, randIndex)\n\t}\n}\n\ndfArrayShuffle.memoizable = false;\n\nexport default dfArrayShuffle;\n\n\n","import { expect } from '@lazy-random/expect';\nimport { randIndex as _randIndex } from '@lazy-random/util-distributions';\nimport { IRNGLike } from '@lazy-random/rng-abstract';\nimport { ITSArrayListMaybeReadonly } from 'ts-type/lib/type/base';\n\nexport interface IRandIndex\n{\n\t(len: number): number\n\t(len: number, ...argv): number\n\t(...argv): number\n}\n\nexport interface IArrayUniqueOutOfLimitCallback<T extends unknown>\n{\n\t(arr: ITSArrayListMaybeReadonly<T>, limit: number, loop: boolean, fn: IRandIndex): T[] | boolean | void\n}\n\nexport function dfArrayUnique<T extends unknown>(random: IRNGLike, arr: ITSArrayListMaybeReadonly<T>, limit?: number, loop?: boolean, fnRandIndex?: IRandIndex, fnOutOfLimit?: IArrayUniqueOutOfLimitCallback<T>)\n{\n\tconst randIndex = (len: number) =>\n\t{\n\t\treturn _randIndex(random, len)\n\t};\n\n\tlet clone = arr.slice();\n\n\tlimit = Math.min(limit || clone.length, clone.length);\n\n\tfnRandIndex = fnRandIndex || randIndex;\n\tloop = !!loop;\n\n\t//ow(limit, ow.number.integer.gt(0));\n\t//ow(fnRandIndex, ow.function);\n\n\texpect(limit, `limit`).integer.gt(0)\n\texpect(fnRandIndex, `fnRandIndex`).function()\n\n\tlet count = limit;\n\tlet len: number;\n\n\tconst _fnClone = function _fnClone(arr: ITSArrayListMaybeReadonly<T>)\n\t{\n\t\tclone = arr.slice();\n\t\tcount = limit;\n\t\tlen = clone.length;\n\t}\n\n\treturn () =>\n\t{\n\t\tlen = clone.length;\n\n\t\tif (len === 0 || count-- === 0)\n\t\t{\n\t\t\tlet _loop: boolean = loop;\n\n\t\t\tif (fnOutOfLimit)\n\t\t\t{\n\t\t\t\tlet ret = fnOutOfLimit(arr, limit, loop, fnRandIndex);\n\n\t\t\t\tif (Array.isArray(ret) && ret.length > 0)\n\t\t\t\t{\n\t\t\t\t\t_fnClone(ret);\n\n\t\t\t\t\t_loop = null;\n\t\t\t\t}\n\t\t\t\telse if (ret == true)\n\t\t\t\t{\n\t\t\t\t\t_loop = true;\n\t\t\t\t}\n\t\t\t\telse if (typeof ret !== 'undefined')\n\t\t\t\t{\n\t\t\t\t\t_loop = false\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (_loop)\n\t\t\t{\n\t\t\t\t_fnClone(arr)\n\t\t\t}\n\t\t\telse if (_loop !== null)\n\t\t\t{\n\t\t\t\tthrow new RangeError(`can't call arrayUnique > ${limit} times`)\n\t\t\t}\n\t\t}\n\n\t\tconst i = fnRandIndex(len);\n\n\t\treturn clone\n\t\t\t.splice(i, 1)[0]\n\t\t\t;\n\t}\n}\n\nexport default dfArrayUnique\n","import { dfUniformByte, dfUniformFloat, dfUniformInt } from '@lazy-random/df-uniform';\nimport { expect } from '@lazy-random/expect';\nimport { IArrayInput02 } from '@lazy-random/shared-lib';\nimport { isUnset } from '@lazy-random/shared-lib';\nimport { IRNGLike } from '@lazy-random/rng-abstract';\n\nexport function dfArrayFill(random: IRNGLike, min?: number, max?: number, float?: boolean)\n{\n\tlet fn: () => number;\n\n\t{\n\t\tlet min_unset = isUnset(min);\n\t\tlet max_unset = isUnset(max);\n\n\t\tif (max_unset && min_unset)\n\t\t{\n\t\t\tfn = dfUniformByte(random);\n\t\t}\n\t\telse if (float)\n\t\t{\n\t\t\tfn = dfUniformFloat(random, min, max);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tfn = dfUniformInt(random, min, max);\n\t\t}\n\n\t\tmin = void 0;\n\t\tmax = void 0;\n\t}\n\n\texpect(fn).function();\n\n\treturn <T extends IArrayInput02<number>>(arr: T) =>\n\t{\n\t\tlet i = arr.length;\n\t\twhile (i--)\n\t\t{\n\t\t\tarr[i] = fn();\n\t\t}\n\t\treturn arr\n\t}\n}\n\nexport default dfArrayFill\n"],"names":["_handleStartEnd","arr","start","end","disableCheck","_end","len","length","enableCheck","Math","max","floor","expect","integer","gt","min","gte","lte","lt","dfArrayIndexOne","random","int","dfArrayIndex","size","fn","size_runtime","ids","prev","LABEL_TOP","i","includes","push","dfArrayShuffle","overwrite","randIndex","_randIndex","cloneArrayLike","Buffer","isBuffer","from","slice","swapAlgorithm2","memoizable","dfArrayUnique","limit","loop","fnRandIndex","fnOutOfLimit","clone","function","count","_fnClone","_loop","ret","Array","isArray","RangeError","splice","dfArrayFill","float","min_unset","isUnset","max_unset","dfUniformByte","dfUniformFloat","dfUniformInt"],"mappings":"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"}