From 03e10c4475676bc9799cfe82bb5b6f12cfefe9e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Kawalec?= Date: Fri, 28 Nov 2014 14:43:05 +0100 Subject: precision changes precision and max doesn't modify options object --- lib/random.js | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'lib') diff --git a/lib/random.js b/lib/random.js index 70bcaf04..5606622c 100644 --- a/lib/random.js +++ b/lib/random.js @@ -11,11 +11,7 @@ var random = { }; } - options = options || { - min: 0, - max: 1, - precision: 1 - }; + options = options || {}; if (typeof options.min === "undefined") { options.min = 0; @@ -24,13 +20,20 @@ var random = { if (typeof options.max === "undefined") { options.max = 1; } - - // by incrementing max by 1, max becomes inclusive of the range - if (options.max > 0) { - options.max++; + if (typeof options.precision === "undefined") { + options.precision = 1; } - var randomNumber = mersenne.rand(options.max, options.min); + // Make the range inclusive of the max value + var max = options.max; + if (max > 0) { + max += options.precision; + } + + var randomNumber = Math.floor(options.precision * + mersenne.rand(max / options.precision, + options.min / options.precision) + ); return randomNumber; }, -- cgit v1.2.3 From 89070a9b5a544801eeacd6f3c5fea83794a42570 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Kawalec?= Date: Fri, 28 Nov 2014 22:27:30 +0100 Subject: added tests and corrected the number function --- lib/random.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'lib') diff --git a/lib/random.js b/lib/random.js index 5606622c..a4bc1858 100644 --- a/lib/random.js +++ b/lib/random.js @@ -6,7 +6,7 @@ var random = { number: function (options) { if (typeof options === "number") { - var options = { + options = { max: options }; } @@ -30,10 +30,9 @@ var random = { max += options.precision; } - var randomNumber = Math.floor(options.precision * - mersenne.rand(max / options.precision, - options.min / options.precision) - ); + var randomNumber = options.precision * Math.floor( + mersenne.rand(max / options.precision, options.min / options.precision)); + return randomNumber; }, -- cgit v1.2.3