From e05aa0d16831a49c89578e85adbc8ab0547dac9c Mon Sep 17 00:00:00 2001 From: Prosen-Ghosh Date: Mon, 28 Aug 2017 22:24:25 +0600 Subject: [PATCH] Two New Function Added ~ Generate Even And Generate Odd Number --- README.md | 69 +++++++++++++++++++++++++++++++++++++++++++++++ index.js | 3 ++- package.json | 2 +- src/pro-number.js | 20 +++++++++++++- test/appTest.js | 27 +++++++++++++++++++ testOutput.md | 6 +++++ 6 files changed, 124 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 02de51e..33bee80 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,75 @@ console.log(rand.generateNumber(0,300)); console.log(rand.generateNumber(0,300)); // 94 ``` + +### Generate Even Number + +***generateEvenNumber()*** This Function will generate even random number. The default number range is `10^6`. + +```javascript + +var rand = require('random-pro'); +console.log(rand.generateEvenNumber()); +// 7498 +console.log(rand.generateEvenNumber()); +// 809878 +``` + +***generateEvenNumber(start)*** you can use start parameter to generate even number. This will generate even random number from start to `10^6` range. + +```javascript +var rand = require('random-pro'); +console.log(rand.generateEvenNumber(30)); +// 64622 +console.log(rand.generateEvenNumber(500)); +// 385886 + +``` + +***generateEvenNumber(start,end)*** you can also use start and end parameter to generate even number. This will generate even random number from start to end range. + +```javascript +var rand = require('random-pro'); +console.log(rand.generateEvenNumber(10,100)); +// 96 +console.log(rand.generateEvenNumber(10,30)); +// 22 +``` + +### Generate Odd Number + +***generateOddNumber()*** This Function will generate odd random number. The default number range is `10^6`. + +```javascript + +var rand = require('random-pro'); +console.log(rand.generateOddNumber()); +// 877475 +console.log(rand.generateOddNumber()); +// 809878 +``` + +***generateOddNumber(start)*** you can use start parameter to generate odd number. This will generate odd random number from start to `10^6` range. + +```javascript +var rand = require('random-pro'); +console.log(rand.generateOddNumber(30)); +// 7447 +console.log(rand.generateOddNumber(500)); +// 380571 + +``` + +***generateOddNumber(start,end)*** you can also use start and end parameter to generate odd number. This will generate odd random number from start to end range. + +```javascript +var rand = require('random-pro'); +console.log(rand.generateOddNumber(1,500)); +// 369 +console.log(rand.generateOddNumber(1000,7000)); +// 3441 +``` + ## Users ### Generate Name diff --git a/index.js b/index.js index ca8ad8e..1549727 100644 --- a/index.js +++ b/index.js @@ -1,9 +1,10 @@ var numberPro = require('./src/pro-number.js'); var usersPro = require('./src/pro-users'); var stringPro = require('./src/pro-string'); -console.log(usersPro.generateBirthDate("YYYY-MM-dd")) module.exports = { generateNumber : numberPro.randNumber, + generateEvenNumber : numberPro.randEvenNumber, + generateOddNumber : numberPro.randOddNumber, generateName : usersPro.randGenerateUserName, generateLastName : usersPro.randGenerateLastName, generateFullName : usersPro.randGenerateFullName, diff --git a/package.json b/package.json index 50c1be4..d2235fa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "random-pro", - "version": "1.3.4", + "version": "1.4.4", "description": "A JavaScript package for random things.", "main": "index.js", "scripts": { diff --git a/src/pro-number.js b/src/pro-number.js index 7d7e34b..d5c7a04 100644 --- a/src/pro-number.js +++ b/src/pro-number.js @@ -4,9 +4,27 @@ var pro = { return Math.random(); } else if(start != undefined && end === undefined){ - return Math.floor(Math.random() * (1000-start)) + start; + return Math.floor(Math.random() * (100000)) + start; } return Math.floor(Math.random()*(end-start+1)) + start; + }, + randEvenNumber : (start,end) => { + if(start === undefined && end === undefined){ + return (Math.floor((Math.random() * 1000000)/2)) * 2; + } + else if(start != undefined && end === undefined){ + return ((Math.floor((Math.random() * (1000000)) / 2)) + start) * 2; + } + return (Math.floor((Math.random()*(end-start+1)) / 2) + start) * 2; + }, + randOddNumber : (start,end) => { + if(start === undefined && end === undefined){ + return ((Math.floor((Math.random() * 1000000)/2)) * 2) + 1; + } + else if(start != undefined && end === undefined){ + return (((Math.floor((Math.random() * (1000000)) / 2)) + start) * 2) + 1; + } + return ((Math.floor((Math.random()*(end-start+1)) / 2) + start) * 2) + 1; } } module.exports = pro; \ No newline at end of file diff --git a/test/appTest.js b/test/appTest.js index 8343331..4742f68 100644 --- a/test/appTest.js +++ b/test/appTest.js @@ -107,6 +107,33 @@ describe("Index",function(){ res = index.generateBirthDate(format); assert.equal(/^([1-9]|1[0-9]|2[0-9]|3[0-1])[/]([1-9]|1[0-2])[/](19[7-9][0-9]|200[0-9]|201[0-9])$/g.test(res),true); }); + it("Generate Even Number Should return a number",function(){ + let res = index.generateEvenNumber(); + assert.typeOf(res,'number'); + }); + it("Generate Even Number Should always return even number",function(){ + let res = index.generateEvenNumber(); + assert.equal(res %2 == 0,true); + }); + it("Generate Even Number Should always number between the given range",function(){ + let res = index.generateEvenNumber(30,500); + assert.isAtLeast(res, 30); + assert.isAtMost(res,500); + }); + it("Generate Odd Number Should return a number",function(){ + let res = index.generateOddNumber(); + assert.typeOf(res,'number'); + }); + it("Generate Odd Number Should always return Odd number",function(){ + let res = index.generateOddNumber(); + assert.equal(res %2 != 0,true); + }); + it("Generate Odd Number Should always number between the given range",function(){ + let res = index.generateOddNumber(30,500); + assert.isAtLeast(res, 30); + assert.isAtMost(res,500); + }); + // it("Generate Name should return a name from the First name male array."),function(done){ // let res = index.generateName(), // arrayVal = false; diff --git a/testOutput.md b/testOutput.md index 79e9107..d38599e 100644 --- a/testOutput.md +++ b/testOutput.md @@ -19,3 +19,9 @@ - ✓ Generate Birth Date Should return string - ✓ Generate Birth Date Should match the format like 'DD-MM-YYYY' - ✓ Generate Birth Date Should match the format like 'DD/MM/YYYY' +- ✓ Generate Even Number Should return a number +- ✓ Generate Even Number Should always return even number +- ✓ Generate Even Number Should always number between the given range +- ✓ Generate Odd Number Should return a number +- ✓ Generate Odd Number Should always return Odd number +- ✓ Generate Odd Number Should always number between the given range