@oliasoft-open-source/units 4.2.5 → 4.3.0-beta-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/README.md +570 -0
- package/dist/index.d.ts +399 -8
- package/dist/index.js +2514 -79
- package/package.json +33 -34
- package/dist/comparison/comparison.d.ts +0 -15
- package/dist/comparison/comparison.js +0 -120
- package/dist/comparison/comparison.js.map +0 -1
- package/dist/comparison/comparison.test.d.ts +0 -1
- package/dist/comparison/comparison.test.js +0 -261
- package/dist/comparison/comparison.test.js.map +0 -1
- package/dist/constants.d.ts +0 -1218
- package/dist/constants.js +0 -1305
- package/dist/constants.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/interfaces.d.ts +0 -13
- package/dist/interfaces.js +0 -3
- package/dist/interfaces.js.map +0 -1
- package/dist/internationalization/internationalization.d.ts +0 -4
- package/dist/internationalization/internationalization.js +0 -64
- package/dist/internationalization/internationalization.js.map +0 -1
- package/dist/internationalization/internationalization.test.d.ts +0 -1
- package/dist/internationalization/internationalization.test.js +0 -65
- package/dist/internationalization/internationalization.test.js.map +0 -1
- package/dist/internationalization/utils.d.ts +0 -5
- package/dist/internationalization/utils.js +0 -114
- package/dist/internationalization/utils.js.map +0 -1
- package/dist/numbers/display-number.d.ts +0 -20
- package/dist/numbers/display-number.js +0 -141
- package/dist/numbers/display-number.js.map +0 -1
- package/dist/numbers/display-number.test.d.ts +0 -1
- package/dist/numbers/display-number.test.js +0 -182
- package/dist/numbers/display-number.test.js.map +0 -1
- package/dist/numbers/numbers.d.ts +0 -4
- package/dist/numbers/numbers.js +0 -94
- package/dist/numbers/numbers.js.map +0 -1
- package/dist/numbers/numbers.test.d.ts +0 -1
- package/dist/numbers/numbers.test.js +0 -167
- package/dist/numbers/numbers.test.js.map +0 -1
- package/dist/parse/parse-number.d.ts +0 -13
- package/dist/parse/parse-number.js +0 -49
- package/dist/parse/parse-number.js.map +0 -1
- package/dist/parse/parse-number.test.d.ts +0 -1
- package/dist/parse/parse-number.test.js +0 -86
- package/dist/parse/parse-number.test.js.map +0 -1
- package/dist/rounding/deprecated-rounding.d.ts +0 -4
- package/dist/rounding/deprecated-rounding.js +0 -80
- package/dist/rounding/deprecated-rounding.js.map +0 -1
- package/dist/rounding/rounding.d.ts +0 -13
- package/dist/rounding/rounding.js +0 -199
- package/dist/rounding/rounding.js.map +0 -1
- package/dist/rounding/rounding.test.d.ts +0 -1
- package/dist/rounding/rounding.test.js +0 -543
- package/dist/rounding/rounding.test.js.map +0 -1
- package/dist/tsconfig.build.tsbuildinfo +0 -1
- package/dist/units.d.ts +0 -29
- package/dist/units.js +0 -365
- package/dist/units.js.map +0 -1
- package/dist/utils.d.ts +0 -27
- package/dist/utils.js +0 -280
- package/dist/utils.js.map +0 -1
- package/dist/validate/ajv-validators.d.ts +0 -6
- package/dist/validate/ajv-validators.js +0 -127
- package/dist/validate/ajv-validators.js.map +0 -1
- package/dist/validate/errors-transform.d.ts +0 -2
- package/dist/validate/errors-transform.js +0 -8
- package/dist/validate/errors-transform.js.map +0 -1
- package/dist/validate/schemas/index.d.ts +0 -2
- package/dist/validate/schemas/index.js +0 -11
- package/dist/validate/schemas/index.js.map +0 -1
- package/dist/validate/schemas/test.schema.d.ts +0 -12
- package/dist/validate/schemas/test.schema.js +0 -15
- package/dist/validate/schemas/test.schema.js.map +0 -1
- package/dist/validate/schemas/validate-number.schema.d.ts +0 -5
- package/dist/validate/schemas/validate-number.schema.js +0 -8
- package/dist/validate/schemas/validate-number.schema.js.map +0 -1
- package/dist/validate/validate.test.d.ts +0 -1
- package/dist/validate/validate.test.js +0 -32
- package/dist/validate/validate.test.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oliasoft-open-source/units",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.3.0-beta-1",
|
|
4
4
|
"description": "Package for units management",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"license": "MIT",
|
|
@@ -10,52 +10,51 @@
|
|
|
10
10
|
"files": [
|
|
11
11
|
"dist/**/*"
|
|
12
12
|
],
|
|
13
|
+
"type": "module",
|
|
13
14
|
"scripts": {
|
|
14
15
|
"compile-validators:build": "esbuild dist/validate/ajv-validators.js --bundle --allow-overwrite --platform=node --format=cjs --outfile=dist/validate/ajv-validators.js",
|
|
15
|
-
"build": "
|
|
16
|
-
"lint": "eslint
|
|
17
|
-
"start": "yarn link && yarn compile-validators &&
|
|
16
|
+
"build": "pkgroll --clean-dist --tsconfig=tsconfig.build.json && cp ./README.md ./dist",
|
|
17
|
+
"lint": "eslint . --fix",
|
|
18
|
+
"start": "yarn link && yarn compile-validators && tsx watch src/index.ts",
|
|
18
19
|
"test": "yarn compile-validators && jest --coverageThreshold \"{}\"",
|
|
19
20
|
"test:watch": "jest --watchAll",
|
|
20
21
|
"watch": "tsc -w -p tsconfig.dev.json",
|
|
21
|
-
"validate-release-notes": "
|
|
22
|
-
"compile-validators": "
|
|
23
|
-
"validate-version": "
|
|
22
|
+
"validate-release-notes": "tsx scripts/validate-release-notes.ts",
|
|
23
|
+
"compile-validators": "tsx scripts/compile-validators.ts",
|
|
24
|
+
"validate-version": "tsx scripts/validate-version.ts",
|
|
25
|
+
"prepare": "husky"
|
|
24
26
|
},
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"pre-commit": "yarn run lint && yarn test",
|
|
28
|
-
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS",
|
|
29
|
-
"pre-push": "yarn run lint && yarn test"
|
|
30
|
-
}
|
|
27
|
+
"lint-staged": {
|
|
28
|
+
"*.ts": "npx eslint --fix"
|
|
31
29
|
},
|
|
32
30
|
"dependencies": {
|
|
33
|
-
"fraction.js": "^
|
|
31
|
+
"fraction.js": "^5.2.1"
|
|
34
32
|
},
|
|
35
33
|
"devDependencies": {
|
|
36
|
-
"@commitlint/cli": "^19.
|
|
37
|
-
"@commitlint/config-conventional": "^19.
|
|
38
|
-
"@oliasoft-open-source/eslint-config-oliasoft": "^1.
|
|
39
|
-
"@types/jest": "^29.5.
|
|
40
|
-
"@types/node": "^22.
|
|
41
|
-
"@typescript-eslint/eslint-plugin": "^
|
|
42
|
-
"@typescript-eslint/parser": "^
|
|
43
|
-
"ajv": "^8.
|
|
34
|
+
"@commitlint/cli": "^19.7.1",
|
|
35
|
+
"@commitlint/config-conventional": "^19.7.1",
|
|
36
|
+
"@oliasoft-open-source/eslint-config-oliasoft": "^1.2.4",
|
|
37
|
+
"@types/jest": "^29.5.14",
|
|
38
|
+
"@types/node": "^22.13.4",
|
|
39
|
+
"@typescript-eslint/eslint-plugin": "^8.24.1",
|
|
40
|
+
"@typescript-eslint/parser": "^8.24.1",
|
|
41
|
+
"ajv": "^8.17.1",
|
|
44
42
|
"ajv-errors": "^3.0.0",
|
|
45
43
|
"ajv-keywords": "^5.1.0",
|
|
46
|
-
"esbuild": "^0.
|
|
47
|
-
"eslint": "^
|
|
48
|
-
"eslint-config-prettier": "^
|
|
49
|
-
"eslint-import-resolver-typescript": "^
|
|
50
|
-
"eslint-plugin-import": "^2.
|
|
51
|
-
"eslint-plugin-prettier": "^
|
|
52
|
-
"husky": "^
|
|
44
|
+
"esbuild": "^0.25.0",
|
|
45
|
+
"eslint": "^9.20.1",
|
|
46
|
+
"eslint-config-prettier": "^10.0.1",
|
|
47
|
+
"eslint-import-resolver-typescript": "^3.8.2",
|
|
48
|
+
"eslint-plugin-import": "^2.31.0",
|
|
49
|
+
"eslint-plugin-prettier": "^5.2.3",
|
|
50
|
+
"husky": "^9.1.7",
|
|
53
51
|
"jest": "^29.7.0",
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"ts-
|
|
58
|
-
"
|
|
52
|
+
"lint-staged": "^15.4.3",
|
|
53
|
+
"pkgroll": "^2.10.0",
|
|
54
|
+
"prettier": "^3.5.1",
|
|
55
|
+
"ts-jest": "^29.2.5",
|
|
56
|
+
"tsx": "^4.19.3",
|
|
57
|
+
"typescript": "^5.7.3"
|
|
59
58
|
},
|
|
60
59
|
"prepublish": "tsc -p tsconfig.build.json"
|
|
61
60
|
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export declare const DEFAULT_MAX_RELATIVE_DIFF: number;
|
|
2
|
-
type Without<T, U> = {
|
|
3
|
-
[P in Exclude<keyof T, keyof U>]?: never;
|
|
4
|
-
};
|
|
5
|
-
type XOR<T, U> = (T | U) extends Record<string, unknown> ? (Without<T, U> & U) | (Without<U, T> & T) : T | U;
|
|
6
|
-
type toleranceType = XOR<{
|
|
7
|
-
relativeDiff: number | string;
|
|
8
|
-
}, {
|
|
9
|
-
absoluteDiff: string | number;
|
|
10
|
-
}>;
|
|
11
|
-
export declare const isCloseTo: (firstValue: number | string | null, secondValue: number | string | null, options?: toleranceType) => boolean;
|
|
12
|
-
export declare const isCloseToOrGreaterThan: (firstValue: number | string | null, secondValue: number | string | null, options?: toleranceType) => boolean;
|
|
13
|
-
export declare const isCloseToOrLessThan: (firstValue: number | string | null, secondValue: number | string | null, options?: toleranceType) => boolean;
|
|
14
|
-
export declare const isDeepCloseTo: (a: any, b: any, options?: toleranceType) => boolean;
|
|
15
|
-
export {};
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isDeepCloseTo = exports.isCloseToOrLessThan = exports.isCloseToOrGreaterThan = exports.isCloseTo = exports.DEFAULT_MAX_RELATIVE_DIFF = void 0;
|
|
4
|
-
const parse_number_1 = require("../parse/parse-number");
|
|
5
|
-
const units_1 = require("../units");
|
|
6
|
-
const numbers_1 = require("../numbers/numbers");
|
|
7
|
-
const utils_1 = require("../utils");
|
|
8
|
-
exports.DEFAULT_MAX_RELATIVE_DIFF = Number.EPSILON;
|
|
9
|
-
const convertNumbers = (firstValue, secondValue) => {
|
|
10
|
-
const { number: firstNumber, unit: firstUnit } = (0, parse_number_1.parseNumber)(firstValue);
|
|
11
|
-
const { number: secondNumber, unit: secondUnit } = (0, parse_number_1.parseNumber)(secondValue);
|
|
12
|
-
const differentUnits = (firstUnit && secondUnit) && (firstUnit !== secondUnit);
|
|
13
|
-
const convertedSecondNumber = differentUnits ? (0, units_1.convertAndGetValue)(secondNumber, firstUnit, secondUnit) : secondNumber;
|
|
14
|
-
return {
|
|
15
|
-
firstNumber,
|
|
16
|
-
secondNumber: convertedSecondNumber
|
|
17
|
-
};
|
|
18
|
-
};
|
|
19
|
-
const getToleranceNumber = (relativeDiff) => {
|
|
20
|
-
if (relativeDiff !== null && relativeDiff !== undefined) {
|
|
21
|
-
if ((0, utils_1.isNumeric)(relativeDiff) && typeof relativeDiff === 'number') {
|
|
22
|
-
return relativeDiff;
|
|
23
|
-
}
|
|
24
|
-
if ((0, utils_1.isPercentage)(relativeDiff)) {
|
|
25
|
-
const percentageValue = (0, numbers_1.toNum)(relativeDiff === null || relativeDiff === void 0 ? void 0 : relativeDiff.toString().replace('%', ''));
|
|
26
|
-
if ((0, utils_1.isNumeric)(percentageValue)) {
|
|
27
|
-
return percentageValue / 100;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
return null;
|
|
32
|
-
};
|
|
33
|
-
const isCloseTo = (firstValue, secondValue, options = { relativeDiff: exports.DEFAULT_MAX_RELATIVE_DIFF }) => {
|
|
34
|
-
const { relativeDiff, absoluteDiff } = options;
|
|
35
|
-
const diff = relativeDiff !== null && relativeDiff !== void 0 ? relativeDiff : absoluteDiff;
|
|
36
|
-
const toleranceNumber = getToleranceNumber(diff);
|
|
37
|
-
if (firstValue === null || secondValue === null) {
|
|
38
|
-
return false;
|
|
39
|
-
}
|
|
40
|
-
const hasUnitFirstValue = (0, units_1.isValueWithUnit)(firstValue);
|
|
41
|
-
const hasUnitSecondValue = (0, units_1.isValueWithUnit)(secondValue);
|
|
42
|
-
if ((hasUnitFirstValue && !hasUnitSecondValue) || (!hasUnitFirstValue && hasUnitSecondValue)) {
|
|
43
|
-
throw new Error(`Parameters must either both have units or both not have units. Received "${firstValue}" and "${secondValue}"`);
|
|
44
|
-
}
|
|
45
|
-
if (toleranceNumber === null) {
|
|
46
|
-
console.warn('Tolerance number is not defined!');
|
|
47
|
-
return firstValue === secondValue;
|
|
48
|
-
}
|
|
49
|
-
if (toleranceNumber <= 0 || toleranceNumber < Number.EPSILON) {
|
|
50
|
-
throw Error('Unpredictable results - toleranceNumber should be bigger than zero or less then EPSILON');
|
|
51
|
-
}
|
|
52
|
-
const { firstNumber, secondNumber } = convertNumbers(firstValue, secondValue);
|
|
53
|
-
if (((firstNumber === Infinity || firstNumber === 'Infinity') && (secondNumber === Infinity || secondNumber === 'Infinity'))
|
|
54
|
-
|| (firstNumber === -Infinity || firstNumber === '-Infinity') && (secondNumber === -Infinity || secondNumber === '-Infinity')) {
|
|
55
|
-
return true;
|
|
56
|
-
}
|
|
57
|
-
if (typeof firstNumber === 'number' && typeof secondNumber === 'number') {
|
|
58
|
-
if (firstNumber === secondNumber)
|
|
59
|
-
return true;
|
|
60
|
-
if (absoluteDiff || firstNumber === 0 || secondNumber === 0) {
|
|
61
|
-
const diff = Math.abs(firstNumber - secondNumber);
|
|
62
|
-
return (0, exports.isCloseTo)(diff, toleranceNumber, { relativeDiff: '1%' }) || diff < toleranceNumber;
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
return (2 * Math.abs((firstNumber - secondNumber) / (firstNumber + secondNumber)) < toleranceNumber);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
return false;
|
|
69
|
-
};
|
|
70
|
-
exports.isCloseTo = isCloseTo;
|
|
71
|
-
const isCloseToOrGreaterThan = (firstValue, secondValue, options = { relativeDiff: exports.DEFAULT_MAX_RELATIVE_DIFF }) => {
|
|
72
|
-
if (firstValue === null || secondValue === null) {
|
|
73
|
-
return false;
|
|
74
|
-
}
|
|
75
|
-
const { firstNumber, secondNumber } = convertNumbers(firstValue, secondValue);
|
|
76
|
-
if (typeof firstNumber === 'number' && typeof secondNumber === 'number') {
|
|
77
|
-
return (0, exports.isCloseTo)(firstNumber, secondNumber, options) || firstNumber > secondNumber;
|
|
78
|
-
}
|
|
79
|
-
return false;
|
|
80
|
-
};
|
|
81
|
-
exports.isCloseToOrGreaterThan = isCloseToOrGreaterThan;
|
|
82
|
-
const isCloseToOrLessThan = (firstValue, secondValue, options = { relativeDiff: exports.DEFAULT_MAX_RELATIVE_DIFF }) => {
|
|
83
|
-
if (firstValue === null || secondValue === null) {
|
|
84
|
-
return false;
|
|
85
|
-
}
|
|
86
|
-
const { firstNumber, secondNumber } = convertNumbers(firstValue, secondValue);
|
|
87
|
-
if (typeof firstNumber === 'number' && typeof secondNumber === 'number') {
|
|
88
|
-
return (0, exports.isCloseTo)(firstNumber, secondNumber, options) || firstNumber < secondNumber;
|
|
89
|
-
}
|
|
90
|
-
return false;
|
|
91
|
-
};
|
|
92
|
-
exports.isCloseToOrLessThan = isCloseToOrLessThan;
|
|
93
|
-
const isDeepCloseTo = (a, b, options = { relativeDiff: exports.DEFAULT_MAX_RELATIVE_DIFF }) => {
|
|
94
|
-
if (Array.isArray(a) && Array.isArray(b)) {
|
|
95
|
-
if (a.length !== b.length) {
|
|
96
|
-
return false;
|
|
97
|
-
}
|
|
98
|
-
return a.every((a, i) => (0, exports.isDeepCloseTo)(a, b[i], options));
|
|
99
|
-
}
|
|
100
|
-
if (typeof a === 'object' && a !== null && typeof b === 'object' && b !== null) {
|
|
101
|
-
const aKeys = Object.keys(a);
|
|
102
|
-
const bKeys = Object.keys(b);
|
|
103
|
-
if (aKeys.length !== bKeys.length) {
|
|
104
|
-
return false;
|
|
105
|
-
}
|
|
106
|
-
return aKeys.every((key) => (0, exports.isDeepCloseTo)(a[key], b[key], options));
|
|
107
|
-
}
|
|
108
|
-
if ((Number.isNaN(a) && Number.isNaN(b))
|
|
109
|
-
|| (a === '' && b === '')) {
|
|
110
|
-
return true;
|
|
111
|
-
}
|
|
112
|
-
if ((typeof a === 'number' && typeof b === 'number')
|
|
113
|
-
|| (0, units_1.isValueWithUnit)(a) && (0, units_1.isValueWithUnit)(b)
|
|
114
|
-
|| ((0, numbers_1.isValidNum)(a) && (0, numbers_1.isValidNum)(b))) {
|
|
115
|
-
return (0, exports.isCloseTo)(a, b, options);
|
|
116
|
-
}
|
|
117
|
-
return true;
|
|
118
|
-
};
|
|
119
|
-
exports.isDeepCloseTo = isDeepCloseTo;
|
|
120
|
-
//# sourceMappingURL=comparison.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"comparison.js","sourceRoot":"","sources":["../../src/comparison/comparison.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,261 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const index_1 = require("../index");
|
|
4
|
-
describe('Comparison', () => {
|
|
5
|
-
describe('isCloseTo', () => {
|
|
6
|
-
test('Checks the values are close to each other', () => {
|
|
7
|
-
expect((0, index_1.isCloseTo)(0, 0)).toBe(true);
|
|
8
|
-
expect((0, index_1.isCloseTo)(123, 123)).toBe(true);
|
|
9
|
-
expect((0, index_1.isCloseTo)(123.000123, 123.000123)).toBe(true);
|
|
10
|
-
expect((0, index_1.isCloseTo)(0.123456789, 0.123456789)).toBe(true);
|
|
11
|
-
expect((0, index_1.isCloseTo)(1e-12, 1e-12)).toBe(true);
|
|
12
|
-
expect((0, index_1.isCloseTo)('0', '0')).toBe(true);
|
|
13
|
-
expect((0, index_1.isCloseTo)('0.123456789', 0.123456789)).toBe(true);
|
|
14
|
-
expect((0, index_1.isCloseTo)(0.123456789, '0.123456789')).toBe(true);
|
|
15
|
-
expect((0, index_1.isCloseTo)(Infinity, Infinity)).toBe(true);
|
|
16
|
-
expect((0, index_1.isCloseTo)(NaN, NaN)).toBe(false);
|
|
17
|
-
expect((0, index_1.isCloseTo)(0.3, 0.1 + 0.2)).toBe(true);
|
|
18
|
-
expect((0, index_1.isCloseTo)(1000.1 + 1000.2, 2000.3)).toBe(true);
|
|
19
|
-
expect((0, index_1.isCloseTo)(1, (0.3 * 3) + 0.1)).toBe(true);
|
|
20
|
-
expect((0, index_1.isCloseTo)(0, 0.1e-17)).toBe(true);
|
|
21
|
-
expect((0, index_1.isCloseTo)('0.3', 0.1 + 0.2)).toBe(true);
|
|
22
|
-
expect((0, index_1.isCloseTo)(0, '0.1e-17')).toBe(true);
|
|
23
|
-
expect((0, index_1.isCloseTo)(1, 0.99999)).toBe(false);
|
|
24
|
-
expect((0, index_1.isCloseTo)(1.12345e-100, 1.6e-100)).toBe(false);
|
|
25
|
-
expect((0, index_1.isCloseTo)(1e-18, 1.1e-18)).toBe(false);
|
|
26
|
-
expect((0, index_1.isCloseTo)(1.9864e-17, 1.1e-17)).toBe(false);
|
|
27
|
-
expect((0, index_1.isCloseTo)(123.000000002, 123.000000003)).toBe(false);
|
|
28
|
-
expect((0, index_1.isCloseTo)(100e100, 100.0001e100)).toBe(false);
|
|
29
|
-
expect((0, index_1.isCloseTo)(0.000000002, 0.000000003)).toBe(false);
|
|
30
|
-
expect((0, index_1.isCloseTo)(-0.000000002, -0.000000003)).toBe(false);
|
|
31
|
-
expect((0, index_1.isCloseTo)(123.000000002234, 123.00000000345646)).toBe(false);
|
|
32
|
-
expect((0, index_1.isCloseTo)(0, 0.000000001)).toBe(false);
|
|
33
|
-
expect((0, index_1.isCloseTo)(123, 124)).toBe(false);
|
|
34
|
-
expect((0, index_1.isCloseTo)(123.000123, 123.000124)).toBe(false);
|
|
35
|
-
expect((0, index_1.isCloseTo)('123.000123', 123.000124)).toBe(false);
|
|
36
|
-
expect((0, index_1.isCloseTo)('', 123.000124)).toBe(false);
|
|
37
|
-
expect((0, index_1.isCloseTo)(123.000124, '')).toBe(false);
|
|
38
|
-
expect((0, index_1.isCloseTo)('', '')).toBe(false);
|
|
39
|
-
expect((0, index_1.isCloseTo)(null, 123.000124)).toBe(false);
|
|
40
|
-
expect((0, index_1.isCloseTo)(123.000124, null)).toBe(false);
|
|
41
|
-
});
|
|
42
|
-
test('Checks the values with given relative difference', () => {
|
|
43
|
-
expect((0, index_1.isCloseTo)(1, 0.9999901, { relativeDiff: 0.00001 })).toBe(true);
|
|
44
|
-
expect((0, index_1.isCloseTo)(0.9999901, 1, { relativeDiff: 0.00001 })).toBe(true);
|
|
45
|
-
expect((0, index_1.isCloseTo)(1.12345e-100, 1.125e-100, { relativeDiff: 1e-2 })).toBe(true);
|
|
46
|
-
expect((0, index_1.isCloseTo)(10, 10.1, { relativeDiff: '1%' })).toBe(true);
|
|
47
|
-
expect((0, index_1.isCloseTo)(10, 10.2, { relativeDiff: '1%' })).toBe(false);
|
|
48
|
-
expect((0, index_1.isCloseTo)(1, 0.99998, { relativeDiff: 0.00001 })).toBe(false);
|
|
49
|
-
expect((0, index_1.isCloseTo)(1, 0.99998, { relativeDiff: 0.00001 })).toBe(false);
|
|
50
|
-
});
|
|
51
|
-
test('Throws an error with given bad relative difference', () => {
|
|
52
|
-
expect(() => (0, index_1.isCloseTo)(1, 1, { relativeDiff: 0 })).toThrow(/Unpredictable/);
|
|
53
|
-
expect(() => (0, index_1.isCloseTo)(1, 1, { relativeDiff: -0e-10 })).toThrow(/Unpredictable/);
|
|
54
|
-
expect(() => (0, index_1.isCloseTo)(1, 1, { relativeDiff: 1e-18 })).toThrow(/Unpredictable/);
|
|
55
|
-
});
|
|
56
|
-
test('Checks the values with given absolute difference', () => {
|
|
57
|
-
expect((0, index_1.isCloseTo)(11.3, 11, { absoluteDiff: 0.5 })).toBe(true);
|
|
58
|
-
expect((0, index_1.isCloseTo)(11, 11.34567, { absoluteDiff: 0.5 })).toBe(true);
|
|
59
|
-
expect((0, index_1.isCloseTo)(11.5, 11, { absoluteDiff: 0.5 })).toBe(true);
|
|
60
|
-
expect((0, index_1.isCloseTo)(11.7, 11, { absoluteDiff: 0.5 })).toBe(false);
|
|
61
|
-
expect((0, index_1.isCloseTo)(11.734, 11.7342, { absoluteDiff: 0.001 })).toBe(true);
|
|
62
|
-
expect((0, index_1.isCloseTo)(11.734, 11.735, { absoluteDiff: 0.001 })).toBe(true);
|
|
63
|
-
expect((0, index_1.isCloseTo)(11.734, 11.736, { absoluteDiff: 0.001 })).toBe(false);
|
|
64
|
-
expect((0, index_1.isCloseTo)(0.000001, 0.000002, { absoluteDiff: 0.000001 })).toBe(true);
|
|
65
|
-
expect((0, index_1.isCloseTo)(0.000001, 0.0000021, { absoluteDiff: 0.000001 })).toBe(false);
|
|
66
|
-
});
|
|
67
|
-
test('Throws an error with given bad absolute difference', () => {
|
|
68
|
-
expect(() => (0, index_1.isCloseTo)(1, 1, { absoluteDiff: 0 })).toThrow(/Unpredictable/);
|
|
69
|
-
expect(() => (0, index_1.isCloseTo)(1, 1, { absoluteDiff: -0e-10 })).toThrow(/Unpredictable/);
|
|
70
|
-
expect(() => (0, index_1.isCloseTo)(1, 1, { absoluteDiff: 1e-18 })).toThrow(/Unpredictable/);
|
|
71
|
-
});
|
|
72
|
-
test('Checks the values with units', () => {
|
|
73
|
-
expect((0, index_1.isCloseTo)('123.000123|m', '123.000123|m')).toBe(true);
|
|
74
|
-
expect((0, index_1.isCloseTo)('0.123456789|m', '0.123456789|m')).toBe(true);
|
|
75
|
-
expect((0, index_1.isCloseTo)('1e-12|m', '1e-12|m')).toBe(true);
|
|
76
|
-
expect((0, index_1.isCloseTo)('1|GPa', '1e9|Pa')).toBe(true);
|
|
77
|
-
expect((0, index_1.isCloseTo)('1|Pa', '1e-9|GPa')).toBe(true);
|
|
78
|
-
expect((0, index_1.isCloseTo)('0.3|m', '0.3000000000000000003|m')).toBe(true);
|
|
79
|
-
expect((0, index_1.isCloseTo)('0|m', '0.1e-17|m')).toBe(true);
|
|
80
|
-
});
|
|
81
|
-
test('Checks the values with different units', () => {
|
|
82
|
-
expect((0, index_1.isCloseTo)('0.3|m', '0.0003000000000000000003|km')).toBe(true);
|
|
83
|
-
expect((0, index_1.isCloseTo)('77,8355568|cm', '2.55366|ft')).toBe(true);
|
|
84
|
-
});
|
|
85
|
-
test('Throws an error with given units mistmatch', () => {
|
|
86
|
-
expect(() => (0, index_1.isCloseTo)('0.3|sg', '0.3000000000000000003|m')).toThrow(/No conversions found/);
|
|
87
|
-
expect(() => (0, index_1.isCloseTo)('77.8355568|cm', '2.55366|kg')).toThrow(/No conversions found/);
|
|
88
|
-
expect(() => (0, index_1.isCloseTo)('0.3|m', '0.3')).toThrowError('Parameters must either both have units or both not have units. Received "0.3|m" and "0.3"');
|
|
89
|
-
expect(() => (0, index_1.isCloseTo)('0.3', '0.3|m')).toThrowError('Parameters must either both have units or both not have units. Received "0.3" and "0.3|m"');
|
|
90
|
-
expect(() => (0, index_1.isCloseTo)('0.3|m', 0.3)).toThrowError('Parameters must either both have units or both not have units. Received "0.3|m" and "0.3"');
|
|
91
|
-
expect(() => (0, index_1.isCloseTo)(0.3, '0.3|m')).toThrowError('Parameters must either both have units or both not have units. Received "0.3" and "0.3|m"');
|
|
92
|
-
});
|
|
93
|
-
});
|
|
94
|
-
describe('isDeepCloseTo deeply compares the numerical properties in objects or arrays', () => {
|
|
95
|
-
test('pass on similar values', () => {
|
|
96
|
-
const a = {
|
|
97
|
-
a: 0,
|
|
98
|
-
b: '77,8355568|cm',
|
|
99
|
-
c: {
|
|
100
|
-
d: 2000.3,
|
|
101
|
-
e: ['0,3'],
|
|
102
|
-
f: 'not a number',
|
|
103
|
-
},
|
|
104
|
-
};
|
|
105
|
-
const b = {
|
|
106
|
-
a: '0,1e-17',
|
|
107
|
-
b: '2.55366|ft',
|
|
108
|
-
c: {
|
|
109
|
-
d: 2000.3000000000002,
|
|
110
|
-
e: [0.30000000000000004],
|
|
111
|
-
f: 'not a number',
|
|
112
|
-
},
|
|
113
|
-
};
|
|
114
|
-
expect((0, index_1.isDeepCloseTo)(a, b)).toBe(true);
|
|
115
|
-
});
|
|
116
|
-
test('pass on self-compare', () => {
|
|
117
|
-
const a = {
|
|
118
|
-
a: 1.000001,
|
|
119
|
-
b: '123.000123|m',
|
|
120
|
-
c: {
|
|
121
|
-
d: 1.12345e-100,
|
|
122
|
-
e: ['1.000004', 1.000005],
|
|
123
|
-
f: 'not a number',
|
|
124
|
-
g: '1,23',
|
|
125
|
-
h: null,
|
|
126
|
-
i: undefined,
|
|
127
|
-
j: '',
|
|
128
|
-
k: NaN,
|
|
129
|
-
l: Infinity,
|
|
130
|
-
m: -Infinity,
|
|
131
|
-
n: '1.',
|
|
132
|
-
o: '1,'
|
|
133
|
-
},
|
|
134
|
-
};
|
|
135
|
-
expect((0, index_1.isDeepCloseTo)(a, a)).toBe(true);
|
|
136
|
-
});
|
|
137
|
-
test('pass for simple types', () => {
|
|
138
|
-
expect((0, index_1.isDeepCloseTo)(0.3, 0.1 + 0.2)).toBe(true);
|
|
139
|
-
expect((0, index_1.isDeepCloseTo)(1000.1 + 1000.2, 2000.3)).toBe(true);
|
|
140
|
-
expect((0, index_1.isDeepCloseTo)(1, (0.3 * 3) + 0.1)).toBe(true);
|
|
141
|
-
expect((0, index_1.isDeepCloseTo)(0, 0.1e-17)).toBe(true);
|
|
142
|
-
expect((0, index_1.isDeepCloseTo)('0.3', 0.1 + 0.2)).toBe(true);
|
|
143
|
-
expect((0, index_1.isDeepCloseTo)(0, '0.1e-17')).toBe(true);
|
|
144
|
-
});
|
|
145
|
-
test('pass for object of strings with slash (OW-19280)', () => {
|
|
146
|
-
expect((0, index_1.isDeepCloseTo)({ name: '13 3/8, Intermediate, Casing' }, { name: '13 3/8, Intermediate, Casing' })).toBe(true);
|
|
147
|
-
});
|
|
148
|
-
test('pass when arguments empty', () => {
|
|
149
|
-
expect((0, index_1.isDeepCloseTo)([], [])).toBe(true);
|
|
150
|
-
expect((0, index_1.isDeepCloseTo)({}, {})).toBe(true);
|
|
151
|
-
expect((0, index_1.isDeepCloseTo)(null, null)).toBe(true);
|
|
152
|
-
expect((0, index_1.isDeepCloseTo)(undefined, undefined)).toBe(true);
|
|
153
|
-
});
|
|
154
|
-
test('fail on values not close enough', () => {
|
|
155
|
-
const a = {
|
|
156
|
-
a: 1.000001,
|
|
157
|
-
b: '123.000123|m',
|
|
158
|
-
c: {
|
|
159
|
-
d: 1.12345e-100,
|
|
160
|
-
e: ['1.000004', 1.000005],
|
|
161
|
-
f: 'not a number',
|
|
162
|
-
g: '1,23',
|
|
163
|
-
h: null,
|
|
164
|
-
i: undefined,
|
|
165
|
-
j: '',
|
|
166
|
-
k: NaN,
|
|
167
|
-
l: Infinity,
|
|
168
|
-
m: -Infinity,
|
|
169
|
-
n: '1.',
|
|
170
|
-
o: '1,'
|
|
171
|
-
},
|
|
172
|
-
};
|
|
173
|
-
const b = {
|
|
174
|
-
a: 1.000001,
|
|
175
|
-
b: '123.000123|m',
|
|
176
|
-
c: {
|
|
177
|
-
d: 1.6e-100,
|
|
178
|
-
e: ['1.000004', 1.000005],
|
|
179
|
-
f: 'not a number',
|
|
180
|
-
g: '1,23',
|
|
181
|
-
h: null,
|
|
182
|
-
i: undefined,
|
|
183
|
-
j: '',
|
|
184
|
-
k: NaN,
|
|
185
|
-
l: Infinity,
|
|
186
|
-
m: -Infinity,
|
|
187
|
-
n: '1.',
|
|
188
|
-
o: '1,'
|
|
189
|
-
},
|
|
190
|
-
};
|
|
191
|
-
expect((0, index_1.isDeepCloseTo)(a, b)).toBe(false);
|
|
192
|
-
});
|
|
193
|
-
test('fail on different number of keys', () => {
|
|
194
|
-
const a = {
|
|
195
|
-
a: 1.000001,
|
|
196
|
-
b: '123.000123|m',
|
|
197
|
-
c: {
|
|
198
|
-
d: 1.12345e-100,
|
|
199
|
-
e: ['1.000004', 1.000005],
|
|
200
|
-
},
|
|
201
|
-
};
|
|
202
|
-
const b = {
|
|
203
|
-
a: 1.000001,
|
|
204
|
-
b: '123.000123|m',
|
|
205
|
-
c: {
|
|
206
|
-
e: ['1.000004', 1.000005],
|
|
207
|
-
},
|
|
208
|
-
};
|
|
209
|
-
expect((0, index_1.isDeepCloseTo)(a, b)).toBe(false);
|
|
210
|
-
});
|
|
211
|
-
});
|
|
212
|
-
describe('isCloseToOrLessThan', () => {
|
|
213
|
-
test('Checks the values are close to each other or less than', () => {
|
|
214
|
-
expect((0, index_1.isCloseToOrLessThan)(0.3, 0.1 + 0.2)).toBe(true);
|
|
215
|
-
expect((0, index_1.isCloseToOrLessThan)(1000.1 + 1000.2, 2000.3)).toBe(true);
|
|
216
|
-
expect((0, index_1.isCloseToOrLessThan)(1, (0.3 * 3) + 0.1)).toBe(true);
|
|
217
|
-
expect((0, index_1.isCloseToOrLessThan)(0, 0.1e-17)).toBe(true);
|
|
218
|
-
expect((0, index_1.isCloseToOrLessThan)('0.3', 0.1 + 0.2)).toBe(true);
|
|
219
|
-
expect((0, index_1.isCloseToOrLessThan)(0, '0.1e-17')).toBe(true);
|
|
220
|
-
expect((0, index_1.isCloseToOrLessThan)(1e-18, 1.1e-18)).toBe(true);
|
|
221
|
-
expect((0, index_1.isCloseToOrLessThan)(1.6e-103, 1.6e-102)).toBe(true);
|
|
222
|
-
expect((0, index_1.isCloseToOrLessThan)(1.0999e-17, 1.1e-17)).toBe(true);
|
|
223
|
-
expect((0, index_1.isCloseToOrLessThan)(123.000000002, 123.000000003)).toBe(true);
|
|
224
|
-
expect((0, index_1.isCloseToOrLessThan)(100e100, 100.0001e100)).toBe(true);
|
|
225
|
-
expect((0, index_1.isCloseToOrLessThan)(0.000000002, 0.000000003)).toBe(true);
|
|
226
|
-
expect((0, index_1.isCloseToOrLessThan)(123.000000002234, 123.00000000345646)).toBe(true);
|
|
227
|
-
expect((0, index_1.isCloseToOrLessThan)(0, 0.000000001)).toBe(true);
|
|
228
|
-
expect((0, index_1.isCloseToOrLessThan)(123, 124)).toBe(true);
|
|
229
|
-
expect((0, index_1.isCloseToOrLessThan)(123.000123, 123.000124)).toBe(true);
|
|
230
|
-
expect((0, index_1.isCloseToOrLessThan)(-0.000000002, -0.000000003)).toBe(false);
|
|
231
|
-
expect((0, index_1.isCloseToOrLessThan)(1, 0.99999)).toBe(false);
|
|
232
|
-
expect((0, index_1.isCloseToOrLessThan)(null, 123.000124)).toBe(false);
|
|
233
|
-
expect((0, index_1.isCloseToOrLessThan)(123.000124, null)).toBe(false);
|
|
234
|
-
});
|
|
235
|
-
});
|
|
236
|
-
describe('isCloseToOrGreaterThan', () => {
|
|
237
|
-
test('Checks the values are close to each other or greater than', () => {
|
|
238
|
-
expect((0, index_1.isCloseToOrGreaterThan)(0.3, 0.1 + 0.2)).toBe(true);
|
|
239
|
-
expect((0, index_1.isCloseToOrGreaterThan)(1000.1 + 1000.2, 2000.3)).toBe(true);
|
|
240
|
-
expect((0, index_1.isCloseToOrGreaterThan)(1, (0.3 * 3) + 0.1)).toBe(true);
|
|
241
|
-
expect((0, index_1.isCloseToOrGreaterThan)(0, 0.1e-17)).toBe(true);
|
|
242
|
-
expect((0, index_1.isCloseToOrGreaterThan)('0.3', 0.1 + 0.2)).toBe(true);
|
|
243
|
-
expect((0, index_1.isCloseToOrGreaterThan)(0, '0.1e-17')).toBe(true);
|
|
244
|
-
expect((0, index_1.isCloseToOrGreaterThan)(1.1e-18, 1e-18)).toBe(true);
|
|
245
|
-
expect((0, index_1.isCloseToOrGreaterThan)(1.6e-102, 1.6e-103)).toBe(true);
|
|
246
|
-
expect((0, index_1.isCloseToOrGreaterThan)(1.1e-17, 1.0999e-17)).toBe(true);
|
|
247
|
-
expect((0, index_1.isCloseToOrGreaterThan)(123.000000003, 123.000000002)).toBe(true);
|
|
248
|
-
expect((0, index_1.isCloseToOrGreaterThan)(100.0001e100, 100e100)).toBe(true);
|
|
249
|
-
expect((0, index_1.isCloseToOrGreaterThan)(0.000000003, 0.000000002)).toBe(true);
|
|
250
|
-
expect((0, index_1.isCloseToOrGreaterThan)(123.00000000345646, 123.000000002234)).toBe(true);
|
|
251
|
-
expect((0, index_1.isCloseToOrGreaterThan)(0.000000001, 0)).toBe(true);
|
|
252
|
-
expect((0, index_1.isCloseToOrGreaterThan)(124, 123)).toBe(true);
|
|
253
|
-
expect((0, index_1.isCloseToOrGreaterThan)(123.000124, 123.000123)).toBe(true);
|
|
254
|
-
expect((0, index_1.isCloseToOrGreaterThan)(-0.000000003, -0.000000002)).toBe(false);
|
|
255
|
-
expect((0, index_1.isCloseToOrGreaterThan)(0.99999, 1)).toBe(false);
|
|
256
|
-
expect((0, index_1.isCloseToOrGreaterThan)(null, 123.000124)).toBe(false);
|
|
257
|
-
expect((0, index_1.isCloseToOrGreaterThan)(123.000124, null)).toBe(false);
|
|
258
|
-
});
|
|
259
|
-
});
|
|
260
|
-
});
|
|
261
|
-
//# sourceMappingURL=comparison.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"comparison.test.js","sourceRoot":"","sources":["../../src/comparison/comparison.test.ts"],"names":[],"mappings":"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"}
|