Conversion operations now support BigNumbers

This commit is contained in:
n1474335 2018-01-05 18:14:03 +00:00
parent 3f3e7a78eb
commit 7992a540ae
2 changed files with 30 additions and 31 deletions

View File

@ -2515,8 +2515,8 @@ const OperationConfig = {
"Convert distance": { "Convert distance": {
module: "Default", module: "Default",
description: "Converts a unit of distance to another format.", description: "Converts a unit of distance to another format.",
inputType: "number", inputType: "BigNumber",
outputType: "number", outputType: "BigNumber",
args: [ args: [
{ {
name: "Input units", name: "Input units",
@ -2533,8 +2533,8 @@ const OperationConfig = {
"Convert area": { "Convert area": {
module: "Default", module: "Default",
description: "Converts a unit of area to another format.", description: "Converts a unit of area to another format.",
inputType: "number", inputType: "BigNumber",
outputType: "number", outputType: "BigNumber",
args: [ args: [
{ {
name: "Input units", name: "Input units",
@ -2551,8 +2551,8 @@ const OperationConfig = {
"Convert mass": { "Convert mass": {
module: "Default", module: "Default",
description: "Converts a unit of mass to another format.", description: "Converts a unit of mass to another format.",
inputType: "number", inputType: "BigNumber",
outputType: "number", outputType: "BigNumber",
args: [ args: [
{ {
name: "Input units", name: "Input units",
@ -2569,8 +2569,8 @@ const OperationConfig = {
"Convert speed": { "Convert speed": {
module: "Default", module: "Default",
description: "Converts a unit of speed to another format.", description: "Converts a unit of speed to another format.",
inputType: "number", inputType: "BigNumber",
outputType: "number", outputType: "BigNumber",
args: [ args: [
{ {
name: "Input units", name: "Input units",
@ -2587,8 +2587,8 @@ const OperationConfig = {
"Convert data units": { "Convert data units": {
module: "Default", module: "Default",
description: "Converts a unit of data to another format.", description: "Converts a unit of data to another format.",
inputType: "number", inputType: "BigNumber",
outputType: "number", outputType: "BigNumber",
args: [ args: [
{ {
name: "Input units", name: "Input units",

View File

@ -60,17 +60,16 @@ const Convert = {
/** /**
* Convert distance operation. * Convert distance operation.
* *
* @param {number} input * @param {BigNumber} input
* @param {Object[]} args * @param {Object[]} args
* @returns {number} * @returns {BigNumber}
*/ */
runDistance: function (input, args) { runDistance: function (input, args) {
let inputUnits = args[0], let inputUnits = args[0],
outputUnits = args[1]; outputUnits = args[1];
input = input * Convert.DISTANCE_FACTOR[inputUnits]; input = input.mul(Convert.DISTANCE_FACTOR[inputUnits]);
return input / Convert.DISTANCE_FACTOR[outputUnits]; return input.div(Convert.DISTANCE_FACTOR[outputUnits]);
// TODO Remove rounding errors (e.g. 1.000000000001)
}, },
@ -141,16 +140,16 @@ const Convert = {
/** /**
* Convert data units operation. * Convert data units operation.
* *
* @param {number} input * @param {BigNumber} input
* @param {Object[]} args * @param {Object[]} args
* @returns {number} * @returns {BigNumber}
*/ */
runDataSize: function (input, args) { runDataSize: function (input, args) {
let inputUnits = args[0], let inputUnits = args[0],
outputUnits = args[1]; outputUnits = args[1];
input = input * Convert.DATA_FACTOR[inputUnits]; input = input.mul(Convert.DATA_FACTOR[inputUnits]);
return input / Convert.DATA_FACTOR[outputUnits]; return input.div(Convert.DATA_FACTOR[outputUnits]);
}, },
@ -221,16 +220,16 @@ const Convert = {
/** /**
* Convert area operation. * Convert area operation.
* *
* @param {number} input * @param {BigNumber} input
* @param {Object[]} args * @param {Object[]} args
* @returns {number} * @returns {BigNumber}
*/ */
runArea: function (input, args) { runArea: function (input, args) {
let inputUnits = args[0], let inputUnits = args[0],
outputUnits = args[1]; outputUnits = args[1];
input = input * Convert.AREA_FACTOR[inputUnits]; input = input.mul(Convert.AREA_FACTOR[inputUnits]);
return input / Convert.AREA_FACTOR[outputUnits]; return input.div(Convert.AREA_FACTOR[outputUnits]);
}, },
@ -332,16 +331,16 @@ const Convert = {
/** /**
* Convert mass operation. * Convert mass operation.
* *
* @param {number} input * @param {BigNumber} input
* @param {Object[]} args * @param {Object[]} args
* @returns {number} * @returns {BigNumber}
*/ */
runMass: function (input, args) { runMass: function (input, args) {
let inputUnits = args[0], let inputUnits = args[0],
outputUnits = args[1]; outputUnits = args[1];
input = input * Convert.MASS_FACTOR[inputUnits]; input = input.mul(Convert.MASS_FACTOR[inputUnits]);
return input / Convert.MASS_FACTOR[outputUnits]; return input.div(Convert.MASS_FACTOR[outputUnits]);
}, },
@ -397,16 +396,16 @@ const Convert = {
/** /**
* Convert speed operation. * Convert speed operation.
* *
* @param {number} input * @param {BigNumber} input
* @param {Object[]} args * @param {Object[]} args
* @returns {number} * @returns {BigNumber}
*/ */
runSpeed: function (input, args) { runSpeed: function (input, args) {
let inputUnits = args[0], let inputUnits = args[0],
outputUnits = args[1]; outputUnits = args[1];
input = input * Convert.SPEED_FACTOR[inputUnits]; input = input.mul(Convert.SPEED_FACTOR[inputUnits]);
return input / Convert.SPEED_FACTOR[outputUnits]; return input.div(Convert.SPEED_FACTOR[outputUnits]);
}, },
}; };