UNPKG

jsfakeit

Version:

![alt text](https://raw.githubusercontent.com/Anirban20001962/jsfakeit/main/logo.png)

118 lines (117 loc) 3.65 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.shuffleNum = exports.randomNum = exports.rangeNormal = exports.normalDist = exports.rangeRandom = exports.range = exports.mean = exports.variance = exports.std = exports.uInt32 = exports.uInt16 = exports.uInt8 = exports.number = void 0; const chooseRand_1 = require("../helper/chooseRand"); /** Number will generate a random number between given min And max */ const number = (min, max) => { return (0, chooseRand_1.getRandomArbitrary)(min, max); }; exports.number = number; const uInt8 = (max) => { const uIntArr = new Uint8Array(1); uIntArr[0] = (0, exports.number)(0, max); return uIntArr[0]; }; exports.uInt8 = uInt8; const uInt16 = (max) => { const uIntArr = new Uint16Array(1); uIntArr[0] = (0, exports.number)(0, max); return uIntArr[0]; }; exports.uInt16 = uInt16; const uInt32 = (max) => { const uIntArr = new Uint32Array(1); uIntArr[0] = (0, exports.number)(0, max); return uIntArr[0]; }; exports.uInt32 = uInt32; /** get std deviation of an arrayof numbers*/ const std = (arr) => { return Math.sqrt((0, exports.variance)(arr)); }; exports.std = std; /** get variance of an array of number */ const variance = (arr) => { const m = (0, exports.mean)(arr); const v = arr.map((e) => (e - m) ** 2); const ss = v.reduce((acc, e) => acc + e, 0); return ss / arr.length; }; exports.variance = variance; /** get mean of an array of number */ const mean = (arr) => arr.reduce((acc, e) => acc + e, 0) / arr.length; exports.mean = mean; /** generates number in range */ const range = (start, end, step = 0) => { if (end < start) { return []; } const res = []; for (let i = start; i < end; i++) { res.push(i + step); } return res; }; exports.range = range; /** Generate random numbers between min and max*/ const rangeRandom = (min, max) => { if (min == max - 1) { return [min]; } if (min > max - 1) { let tmp = min; min = max; max = tmp; } const res = []; for (let _ of (0, exports.range)(min, max)) { res.push((0, chooseRand_1.getRandomArbitrary)(min, max)); } return res; }; exports.rangeRandom = rangeRandom; /** Generate normal distribution for a value, mean, std deviatiom */ const normalDist = (x, mu, dev) => { const devSq = dev ** 2; const coef = 1 / Math.sqrt(2 * Math.PI * devSq); const kParam = -0.5 * ((x - mu) / dev) ** 2; const kernal = Math.exp(kParam); return coef * kernal; }; exports.normalDist = normalDist; /** Generate random numbers in nomral distribution */ const rangeNormal = (min, max) => { if (min === max - 1) { return []; } if (min > max - 1) { let tmp = min; min = max; max = tmp; } const arr = (0, exports.rangeRandom)(min, max); console.log(arr); const m = (0, exports.mean)(arr); console.log(m); const sigma = (0, exports.std)(arr); console.log(sigma); return arr.map((e) => (0, exports.normalDist)(e, m, sigma)); }; exports.rangeNormal = rangeNormal; /** Selects random number from a given array*/ const randomNum = (arr) => { if (arr.length == 1) { return arr[0]; } return arr[(0, chooseRand_1.getRandomArbitrary)(0, arr.length)]; }; exports.randomNum = randomNum; /** Shuffles given array*/ const shuffleNum = (arr) => { for (let i of (0, exports.range)(0, arr.length)) { const j = (0, chooseRand_1.getRandomArbitrary)(0, i); [arr[i], arr[j]] = [arr[j], arr[i]]; } return arr; }; exports.shuffleNum = shuffleNum;