1 | import { nearlyEqual as bigNearlyEqual } from '../../utils/bignumber/nearlyEqual.js';
|
2 | import { nearlyEqual } from '../../utils/number.js';
|
3 | import { factory } from '../../utils/factory.js';
|
4 | import { complexEquals } from '../../utils/complex.js';
|
5 | var name = 'equalScalar';
|
6 | var dependencies = ['typed', 'config'];
|
7 | export var createEqualScalar = factory(name, dependencies, _ref => {
|
8 | var {
|
9 | typed,
|
10 | config
|
11 | } = _ref;
|
12 |
|
13 | |
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 | return typed(name, {
|
22 | 'boolean, boolean': function booleanBoolean(x, y) {
|
23 | return x === y;
|
24 | },
|
25 | 'number, number': function numberNumber(x, y) {
|
26 | return nearlyEqual(x, y, config.epsilon);
|
27 | },
|
28 | 'BigNumber, BigNumber': function BigNumberBigNumber(x, y) {
|
29 | return x.eq(y) || bigNearlyEqual(x, y, config.epsilon);
|
30 | },
|
31 | 'Fraction, Fraction': function FractionFraction(x, y) {
|
32 | return x.equals(y);
|
33 | },
|
34 | 'Complex, Complex': function ComplexComplex(x, y) {
|
35 | return complexEquals(x, y, config.epsilon);
|
36 | },
|
37 | 'Unit, Unit': function UnitUnit(x, y) {
|
38 | if (!x.equalBase(y)) {
|
39 | throw new Error('Cannot compare units with different base');
|
40 | }
|
41 |
|
42 | return this(x.value, y.value);
|
43 | }
|
44 | });
|
45 | });
|
46 | export var createEqualScalarNumber = factory(name, ['typed', 'config'], _ref2 => {
|
47 | var {
|
48 | typed,
|
49 | config
|
50 | } = _ref2;
|
51 | return typed(name, {
|
52 | 'number, number': function numberNumber(x, y) {
|
53 | return nearlyEqual(x, y, config.epsilon);
|
54 | }
|
55 | });
|
56 | }); |
\ | No newline at end of file |