uniquerand

1.0.5 • Public • Published

Unique Random Numbers Generator (TypeScript / JavaScript)

Generates unique random numbers between a minimum and maximum (inclusive). Negative numbers supported.

Example:

min = -5

max = 8

sample output: -3,-1,3,0,5,6,2,-4,-5,8,4,-2,1,7

Install Instructions

Best way is to use npm:

npm i --save uniquerand

Usage Instructions

TypeScript

For TypeScript need @types/node to use require():

npm i --save-dev @types/node

To use UniqueRand.ts in your TypeScript project here is an example. Modify to suit your needs:

const { UniqueRand } = require("uniquerand");

let min = -5;
let max = 8;
let arr = UniqueRand.getRandArr(min, max);
console.log('unique random numbers = ' + arr);

Note that the member function getRandArr is static so no need to instantiate the UniqueRand class before use.

If numbers with decimals are given it will round the min to the next lowest int it closest to and for the max to next highest int it is closest to. Eg:

let min = 0.2; 
let max = 9.3;
let arr = UniqueRand.getRandArr(min, max);
console.log('unique random numbers = ' + arr);

The min and max will be rounded and will effectively be as if you used:

min = 0
max = 10

sample output: 8,0,10,3,6,4,1,5,2,9,7

You may also pass an optional count argument that specifies the number of random numbers to return eg:

let min = 0.2; 
let max = 9.3;
let count = 5;
let arr = UniqueRand.getRandArr(min, max, count);
console.log('unique random numbers = ' + arr);

sample output: 1,9,3,5,10

JavaScript

To use UniqueRand.js in your JavaScript project here is an example. Modify to suit your needs:

let { UniqueRand } = require("uniquerand");

let min = -5;
let max = 8;
let arr = UniqueRand.getRandArr(min, max);
console.log('unique random numbers = ' + arr);

Note that the member function getRandArr is static so no need to instantiate the UniqueRand class before use.

If numbers with decimals are given it will round the min to the next lowest int it closest to and for the max to next highest int it is closest to. Eg:

let min = 0.2; 
let max = 9.3;
let arr = UniqueRand.getRandArr(min, max);
console.log('unique random numbers = ' + arr);

The min and max will be rounded and will effectively be as if you used:

min = 0
max = 10

sample output: 8,0,10,3,6,4,1,5,2,9,7

You may also pass an optional count argument that specifies the number of random numbers to return eg:

let min = 0.2; 
let max = 9.3;
let count = 5;
let arr = UniqueRand.getRandArr(min, max, count);
console.log('unique random numbers = ' + arr);

sample output: 1,9,3,5,10

TypeScript Testing Instructions

Change directory to the module uniquerand then install dependencies:

npm install

Run Jest tests:

npm run test

Note: above is an alias to jest src.

Click to show example test run.
 PASS  src/uniqueRand.test.ts
  ✓ all (59 ms)

  console.log
    runSingleTest(1, 1) = [1] ... Passed

      at runSingleTest (src/uniqueRand.test.ts:60:13)

  console.log
    runSingleTest(1, 2) = [1,2] ... Passed

      at runSingleTest (src/uniqueRand.test.ts:60:13)

  console.log
    runSingleTest(1, 3) = [3,1,2] ... Passed

      at runSingleTest (src/uniqueRand.test.ts:60:13)

  console.log
    runSingleTest(0, 10) = [6,1,9,0,8,10,2,4,7,5,3] ... Passed

      at runSingleTest (src/uniqueRand.test.ts:60:13)

  console.log
    runSingleTest(0.2, 9.3) = [4,1,3,0,7,9,8,2,10,6,5] ... Passed

      at runSingleTest (src/uniqueRand.test.ts:60:13)

  console.log
    runSingleTest(-0.2, 9.3) = [3,-1,1,10,7,9,5,6,8,4,2,0] ... Passed

      at runSingleTest (src/uniqueRand.test.ts:60:13)

  console.log
    runSingleTest(-20.2, -9.3) = [-10,-14,-13,-19,-16,-11,-12,-9,-20,-17,-21,-18,-15] ... Passed

      at runSingleTest (src/uniqueRand.test.ts:60:13)

  console.log
    runSingleTest(-5, 8) = [-5,6,5,3,7,-4,-1,-2,0,4,2,1,8,-3] ... Passed

      at runSingleTest (src/uniqueRand.test.ts:60:13)

  console.log
    runSingleTest(1, 15) = [15,13,1,9,3,5,4,8,11,2,6,12,14,7,10] ... Passed

      at runSingleTest (src/uniqueRand.test.ts:60:13)

  console.log
    runSingleTest(5, 95) = [49,55,31,37,16,48,47,22,95,36,12,8,50,39,84,79,45,69,94,60,71,14,17,33,40,27,44,67,21,52,43,85,92,9,6,76,20,23,77,82,53,87,24,41,42,62,18,65,28,26,30,29,80,90,89,68,35,51,46,19,78,11,25,34,56,81,61,15,38,64,54,63,5,70,32,57,73,83,66,75,7,86,59,13,93,58,74,88,10,91,72] ... Passed

      at runSingleTest (src/uniqueRand.test.ts:60:13)

  console.log
    runSingleTest(0, 10, 5) = [0,4,8,3,5] ... Passed

      at runSingleTest (src/uniqueRand.test.ts:58:13)

  console.log
    runSingleTest(0.2, 9.3, 5) = [5,2,0,10,3] ... Passed

      at runSingleTest (src/uniqueRand.test.ts:58:13)

  console.log
    runSingleTest(-0.2, 9.3, 5) = [9,8,5,1,-1] ... Passed

      at runSingleTest (src/uniqueRand.test.ts:58:13)

  console.log
    runSingleTest(-20.2, -9.3, 5) = [-20,-10,-19,-13,-17] ... Passed

      at runSingleTest (src/uniqueRand.test.ts:58:13)

  console.log
    runSingleTest(-5, 8, 5) = [-2,4,5,0,6] ... Passed

      at runSingleTest (src/uniqueRand.test.ts:58:13)

  console.log
    runSingleTest(1, 15, 6) = [7,3,8,11,2,6] ... Passed

      at runSingleTest (src/uniqueRand.test.ts:58:13)

  console.log
    runSingleTest(5, 95, 8) = [52,20,29,35,90,45,83,78] ... Passed

      at runSingleTest (src/uniqueRand.test.ts:58:13)

Feedback

Any constructive feedback / suggestions / new feature requests welcome!

Readme

Keywords

Package Sidebar

Install

npm i uniquerand

Weekly Downloads

1

Version

1.0.5

License

MIT

Unpacked Size

29.3 kB

Total Files

12

Last publish

Collaborators

  • kso