@aitodotai/aito-price-tool
Advanced tools
Comparing version
@@ -144,4 +144,5 @@ "use strict"; | ||
function sumOfArray(array) { | ||
return array.reduce(function (a, b) { return a + b; }, 0); | ||
return array.filter(function (n) { return !isNaN(n); }).reduce(function (a, b) { return a + b; }, 0); | ||
} | ||
exports.sumOfArray = sumOfArray; | ||
function averageOfArray(array) { | ||
@@ -168,8 +169,7 @@ return sumOfArray(array) / (1.0 * array.length); | ||
function calculatePrice(dailyData) { | ||
var queryPrice = calculateQueryPrice(dailyData.map(function (dayData) { return dayData.totalCalls; }).reduce(function (a, b) { return a + b; }, 0), exports.QUERY_LIMIT_RANGES, exports.QUERY_PRICE_RANGES); | ||
var dataPrice = dailyData.map(function (o) { return o.dataUsage; }) | ||
.map(function (dayData) { return calculateDataPrice(dayData, 1, exports.DATA_LIMIT_RANGES, exports.DATA_PRICE_RANGES); }) | ||
.reduce(function (a, b) { return a + b; }, 0); | ||
var queryPrice = calculateQueryPrice(sumOfArray(dailyData.map(function (dayData) { return dayData.totalCalls; })), exports.QUERY_LIMIT_RANGES, exports.QUERY_PRICE_RANGES); | ||
var dataPrice = sumOfArray(dailyData.map(function (o) { return o.dataUsage; }) | ||
.map(function (dayData) { return calculateDataPrice(dayData, 1, exports.DATA_LIMIT_RANGES, exports.DATA_PRICE_RANGES); })); | ||
return Math.round((queryPrice + dataPrice) * 100) / 100; | ||
} | ||
exports.calculatePrice = calculatePrice; |
{ | ||
"name": "@aitodotai/aito-price-tool", | ||
"version": "0.3.1", | ||
"version": "0.3.2", | ||
"description": "Calculates Aito invoices", | ||
@@ -13,3 +13,5 @@ "main": "dist/src/index.js", | ||
"np": "np --no-yarn", | ||
"test": "mocha -r ts-node/register test/**/*.spec.ts", | ||
"test": "npm run testTs && npm run testCommonJs", | ||
"testTs": "mocha -r ts-node/register test/**/*.spec.ts", | ||
"testCommonJs": "npm run build && mocha --compilers js:@babel/register test/**/*.spec.js", | ||
"lint": "tslint -c tslint.json 'src/**/*.ts' 'test/**/*.ts'", | ||
@@ -32,2 +34,7 @@ "build": "tsc" | ||
"devDependencies": { | ||
"@babel/cli": "^7.2.3", | ||
"@babel/core": "^7.3.4", | ||
"@babel/node": "^7.2.2", | ||
"@babel/preset-env": "^7.3.4", | ||
"@babel/register": "^7.0.0", | ||
"@types/chai": "^4.1.7", | ||
@@ -34,0 +41,0 @@ "@types/mocha": "^5.2.5", |
@@ -16,3 +16,2 @@ import { expect } from 'chai' | ||
it('should give min price for single min data', () => { | ||
expect(Calculator.calculatePrice([new DailyUsage(0, 0)])).to.equal(minPriceForDay) | ||
@@ -67,3 +66,2 @@ }) | ||
}) | ||
}) |
21605
11.97%9
28.57%391
12.36%13
62.5%