From 7992a540aec46a4671f93602a6f32daa1dfb59f3 Mon Sep 17 00:00:00 2001 From: n1474335 Date: Fri, 5 Jan 2018 18:14:03 +0000 Subject: [PATCH] Conversion operations now support BigNumbers --- src/core/config/OperationConfig.js | 20 +++++++-------- src/core/operations/Convert.js | 41 +++++++++++++++--------------- 2 files changed, 30 insertions(+), 31 deletions(-) diff --git a/src/core/config/OperationConfig.js b/src/core/config/OperationConfig.js index a47af9a6..273b6c76 100755 --- a/src/core/config/OperationConfig.js +++ b/src/core/config/OperationConfig.js @@ -2515,8 +2515,8 @@ const OperationConfig = { "Convert distance": { module: "Default", description: "Converts a unit of distance to another format.", - inputType: "number", - outputType: "number", + inputType: "BigNumber", + outputType: "BigNumber", args: [ { name: "Input units", @@ -2533,8 +2533,8 @@ const OperationConfig = { "Convert area": { module: "Default", description: "Converts a unit of area to another format.", - inputType: "number", - outputType: "number", + inputType: "BigNumber", + outputType: "BigNumber", args: [ { name: "Input units", @@ -2551,8 +2551,8 @@ const OperationConfig = { "Convert mass": { module: "Default", description: "Converts a unit of mass to another format.", - inputType: "number", - outputType: "number", + inputType: "BigNumber", + outputType: "BigNumber", args: [ { name: "Input units", @@ -2569,8 +2569,8 @@ const OperationConfig = { "Convert speed": { module: "Default", description: "Converts a unit of speed to another format.", - inputType: "number", - outputType: "number", + inputType: "BigNumber", + outputType: "BigNumber", args: [ { name: "Input units", @@ -2587,8 +2587,8 @@ const OperationConfig = { "Convert data units": { module: "Default", description: "Converts a unit of data to another format.", - inputType: "number", - outputType: "number", + inputType: "BigNumber", + outputType: "BigNumber", args: [ { name: "Input units", diff --git a/src/core/operations/Convert.js b/src/core/operations/Convert.js index 2c95253d..d47166ce 100755 --- a/src/core/operations/Convert.js +++ b/src/core/operations/Convert.js @@ -60,17 +60,16 @@ const Convert = { /** * Convert distance operation. * - * @param {number} input + * @param {BigNumber} input * @param {Object[]} args - * @returns {number} + * @returns {BigNumber} */ runDistance: function (input, args) { let inputUnits = args[0], outputUnits = args[1]; - input = input * Convert.DISTANCE_FACTOR[inputUnits]; - return input / Convert.DISTANCE_FACTOR[outputUnits]; - // TODO Remove rounding errors (e.g. 1.000000000001) + input = input.mul(Convert.DISTANCE_FACTOR[inputUnits]); + return input.div(Convert.DISTANCE_FACTOR[outputUnits]); }, @@ -141,16 +140,16 @@ const Convert = { /** * Convert data units operation. * - * @param {number} input + * @param {BigNumber} input * @param {Object[]} args - * @returns {number} + * @returns {BigNumber} */ runDataSize: function (input, args) { let inputUnits = args[0], outputUnits = args[1]; - input = input * Convert.DATA_FACTOR[inputUnits]; - return input / Convert.DATA_FACTOR[outputUnits]; + input = input.mul(Convert.DATA_FACTOR[inputUnits]); + return input.div(Convert.DATA_FACTOR[outputUnits]); }, @@ -221,16 +220,16 @@ const Convert = { /** * Convert area operation. * - * @param {number} input + * @param {BigNumber} input * @param {Object[]} args - * @returns {number} + * @returns {BigNumber} */ runArea: function (input, args) { let inputUnits = args[0], outputUnits = args[1]; - input = input * Convert.AREA_FACTOR[inputUnits]; - return input / Convert.AREA_FACTOR[outputUnits]; + input = input.mul(Convert.AREA_FACTOR[inputUnits]); + return input.div(Convert.AREA_FACTOR[outputUnits]); }, @@ -332,16 +331,16 @@ const Convert = { /** * Convert mass operation. * - * @param {number} input + * @param {BigNumber} input * @param {Object[]} args - * @returns {number} + * @returns {BigNumber} */ runMass: function (input, args) { let inputUnits = args[0], outputUnits = args[1]; - input = input * Convert.MASS_FACTOR[inputUnits]; - return input / Convert.MASS_FACTOR[outputUnits]; + input = input.mul(Convert.MASS_FACTOR[inputUnits]); + return input.div(Convert.MASS_FACTOR[outputUnits]); }, @@ -397,16 +396,16 @@ const Convert = { /** * Convert speed operation. * - * @param {number} input + * @param {BigNumber} input * @param {Object[]} args - * @returns {number} + * @returns {BigNumber} */ runSpeed: function (input, args) { let inputUnits = args[0], outputUnits = args[1]; - input = input * Convert.SPEED_FACTOR[inputUnits]; - return input / Convert.SPEED_FACTOR[outputUnits]; + input = input.mul(Convert.SPEED_FACTOR[inputUnits]); + return input.div(Convert.SPEED_FACTOR[outputUnits]); }, };