Skip to content
Merged
2 changes: 1 addition & 1 deletion .babelrc
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"presets": [
"babel-preset-env"
"@babel/preset-env"
],
"env": {
"production": {
Expand Down
3 changes: 3 additions & 0 deletions .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
"extends": ["airbnb-base"],
"rules": {
"strict": 0,
"global-require": 0,
"import/extensions": 0,
"arrow-parens": ["error", "as-needed", {"requireForBlockBody": true}],
"no-restricted-syntax": [
"error",
"ForInStatement",
Expand Down
1 change: 0 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ install:

script:
- npm test
- npm run coveralls
- npm run lint

branches:
Expand Down
60 changes: 30 additions & 30 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,33 +3,33 @@
/**
* @module variadic
*/
module.exports = Object.assign(
{},
require('./lib/isEmpty.js'),
require('./lib/isEqual.js'),
require('./lib/isEven.js'),
require('./lib/isOdd.js'),
require('./lib/isPositiveNumber.js'),
require('./lib/isNegativeNumber.js'),
require('./lib/sum.js'),
require('./lib/average.js'),
require('./lib/floatPrecise.js'),
require('./lib/isAscending.js'),
require('./lib/isDescending.js'),
require('./lib/isIntegers.js'),
require('./lib/isPrime.js'),
require('./lib/isComposit.js'),
require('./lib/maximum.js'),
require('./lib/median.js'),
require('./lib/minimum.js'),
require('./lib/mode.js'),
require('./lib/range.js'),
require('./lib/populationStandardDeviation.js'),
require('./lib/populationVariance.js'),
require('./lib/sampleStandardDeviation.js'),
require('./lib/sampleVariance.js'),
require('./lib/isPositiveInteger.js'),
require('./lib/isDecimal.js'),
require('./lib/isNegativeInteger.js'),
require('./lib/absoluteValue.js'),
);
module.exports = {

...require('./lib/isEmpty.js'),
...require('./lib/isEqual.js'),
...require('./lib/isEven.js'),
...require('./lib/isOdd.js'),
...require('./lib/isPositiveNumber.js'),
...require('./lib/isNegativeNumber.js'),
...require('./lib/sum.js'),
...require('./lib/average.js'),
...require('./lib/floatPrecise.js'),
...require('./lib/isAscending.js'),
...require('./lib/isDescending.js'),
...require('./lib/isIntegers.js'),
...require('./lib/isPrime.js'),
...require('./lib/isComposit.js'),
...require('./lib/maximum.js'),
...require('./lib/median.js'),
...require('./lib/minimum.js'),
...require('./lib/mode.js'),
...require('./lib/range.js'),
...require('./lib/populationStandardDeviation.js'),
...require('./lib/populationVariance.js'),
...require('./lib/sampleStandardDeviation.js'),
...require('./lib/sampleVariance.js'),
...require('./lib/isPositiveInteger.js'),
...require('./lib/isDecimal.js'),
...require('./lib/isNegativeInteger.js'),
...require('./lib/absoluteValue.js'),
};
1 change: 0 additions & 1 deletion lib/absoluteValue.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

const handleErrors = (params) => {
if (params.length === 0) throw new Error('Must provide one or more parameters');
if (params.some(param => typeof param !== 'number')) {
Expand Down
1 change: 0 additions & 1 deletion lib/average.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,3 @@ exports.average = (...params) => {
// so this might not be necessary. I just put it in for safety's sake - jmbothe
return floatPrecise(result);
};

1 change: 0 additions & 1 deletion lib/isComposit.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
const { isPrime } = require('./isPrime');


// `isPrime` checks if the number is an integer greater than 1
// but since we simply want `isPrime` to check if this number
// is prime, we need to do the check again to avoid a false result.
Expand Down
1 change: 0 additions & 1 deletion lib/isDecimal.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

/**
* This function evaluates whether all the parameters are decimal values
* @memberof variadic
Expand Down
1 change: 0 additions & 1 deletion lib/isEqual.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

/**
* This function evaluates whether all parameters are equal
* @memberof variadic
Expand Down
3 changes: 1 addition & 2 deletions lib/isEven.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

/**
* This function evaluates whether all parameters are even
* @memberof variadic
Expand All @@ -10,7 +9,7 @@ exports.isEven = (...params) => {
// Only accept finite numbers
if (Number.isNaN(parseFloat(param)) || !Number.isFinite(Number(param))) return false;
// Only accept evens
else if (param % 2 !== 0) return false;
if (param % 2 !== 0) return false;
}
return true;
};
10 changes: 5 additions & 5 deletions lib/isNegativeInteger.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@
exports.isNegativeInteger = (...params) => {
for (const param of params) {
// Checks the type to be Number
if (Object.prototype.toString.call(param) !== '[object Number]' ||
if (Object.prototype.toString.call(param) !== '[object Number]'
// Is it an integer?
param % 1 !== 0 ||
// Is it positive?
param >= 0 ||
|| param % 1 !== 0
// Is it non-negative (zero or positive)?
|| param >= 0
// maximum safe integer check
// / / https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER
param < Number.MIN_SAFE_INTEGER) {
|| param < Number.MIN_SAFE_INTEGER) {
return false;
}
}
Expand Down
2 changes: 1 addition & 1 deletion lib/isNegativeNumber.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ exports.isNegativeNumber = (...params) => {
// the following phrases are sometimes used to refer to the sign of an unknown number:
// A number is negative if it is less than zero.
// A number is non-negative if it is greater than or equal to zero.
else if (param >= 0) return false;
if (param >= 0) return false;
}
return true;
};
2 changes: 1 addition & 1 deletion lib/isOdd.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ exports.isOdd = (...params) => {
// Only accept finite numbers
if (Number.isNaN(parseFloat(param)) || !Number.isFinite(Number(param))) return false;
// Only accept odds
else if (param % 2 === 0) return false;
if (param % 2 === 0) return false;
}
return true;
};
9 changes: 4 additions & 5 deletions lib/isPositiveInteger.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

/**
* This function evaluates whether all integer parameters are positive
* @memberof variadic
Expand All @@ -8,14 +7,14 @@
exports.isPositiveInteger = (...params) => {
for (const param of params) {
// Checks the type to be Number
if (Object.prototype.toString.call(param) !== '[object Number]' ||
if (Object.prototype.toString.call(param) !== '[object Number]'
// Is it an integer?
param % 1 !== 0 ||
|| param % 1 !== 0
// Is it positive?
param <= 0 ||
|| param <= 0
// maximum safe integer check
// / / https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER
param > Number.MAX_SAFE_INTEGER) {
|| param > Number.MAX_SAFE_INTEGER) {
return false;
}
}
Expand Down
2 changes: 1 addition & 1 deletion lib/isPositiveNumber.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ exports.isPositiveNumber = (...params) => {
// the following phrases are sometimes used to refer to the sign of an unknown number:
// A number is positive if it is greater than zero. A number is negative if it is
// less than zero. A number is non-negative if it is greater than or equal to zero.
else if (param <= 0) return false;
if (param <= 0) return false;
}
return true;
};
2 changes: 1 addition & 1 deletion lib/maximum.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
const { floatPrecise } = require('./floatPrecise');

const handleErrors = (params) => {
if (params.length === 0) throw new Error('Must provide one or more parameterss');
if (params.length === 0) throw new Error('Must provide one or more parameters');
if (params.some(param => typeof param !== 'number')) {
throw new Error('One of your parameters does not evaluate to a number');
}
Expand Down
1 change: 0 additions & 1 deletion lib/mode.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,4 +46,3 @@ exports.mode = (...params) => {
// return an array of just the values
.map(num => num.value);
};

1 change: 0 additions & 1 deletion lib/populationStandardDeviation.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,3 @@ exports.populationStandardDeviation = (...params) => {

return floatPrecise(Math.sqrt(populationVariance(...params)));
};

3 changes: 1 addition & 2 deletions lib/populationVariance.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,7 @@ exports.populationVariance = (...params) => {

const mean = average(...params);
// const sum = params.reduce((acc, v) => acc + ((v - mean) ** 2), 0);
const sum = params.reduce((acc, v) => acc + Math.pow(v - mean, 2), 0);
const sum = params.reduce((acc, v) => acc + (v - mean) ** 2, 0);

return floatPrecise(sum / params.length);
};

3 changes: 1 addition & 2 deletions lib/sampleVariance.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,7 @@ exports.sampleVariance = (...params) => {

const mean = average(...params);
// const sum = params.reduce((acc, v) => acc + ((v - mean) ** 2), 0);
const sum = params.reduce((acc, v) => acc + Math.pow(v - mean, 2), 0);
const sum = params.reduce((acc, v) => acc + (v - mean) ** 2, 0);

return floatPrecise(sum / (params.length - 1));
};

Loading