1023dd3b8Sopenharmony_ciif (typeof T === 'undefined') require('../setup');
2023dd3b8Sopenharmony_ci
3023dd3b8Sopenharmony_ciT('absoluteValue', function () {
4023dd3b8Sopenharmony_ci
5023dd3b8Sopenharmony_ci  function t(expected, value){
6023dd3b8Sopenharmony_ci    T.assertEqual(expected, new Decimal(value).abs().valueOf());
7023dd3b8Sopenharmony_ci  }
8023dd3b8Sopenharmony_ci
9023dd3b8Sopenharmony_ci  Decimal.config({
10023dd3b8Sopenharmony_ci    precision: 20,
11023dd3b8Sopenharmony_ci    rounding: 4,
12023dd3b8Sopenharmony_ci    toExpNeg: -7,
13023dd3b8Sopenharmony_ci    toExpPos: 21,
14023dd3b8Sopenharmony_ci    minE: -9e15,
15023dd3b8Sopenharmony_ci    maxE: 9e15
16023dd3b8Sopenharmony_ci  });
17023dd3b8Sopenharmony_ci
18023dd3b8Sopenharmony_ci  t('0', 0);
19023dd3b8Sopenharmony_ci  t('0', '0');
20023dd3b8Sopenharmony_ci  t('0', -0);
21023dd3b8Sopenharmony_ci  t('0', '-0');
22023dd3b8Sopenharmony_ci  t('1', 1);
23023dd3b8Sopenharmony_ci  t('1', -1);
24023dd3b8Sopenharmony_ci  t('1', '-1');
25023dd3b8Sopenharmony_ci  t('0.5', '0.5');
26023dd3b8Sopenharmony_ci  t('0.5', '-0.5');
27023dd3b8Sopenharmony_ci  t('0.1', 0.1);
28023dd3b8Sopenharmony_ci  t('0.1', -0.1);
29023dd3b8Sopenharmony_ci  t('1.1', 1.1);
30023dd3b8Sopenharmony_ci  t('1.1', -1.1);
31023dd3b8Sopenharmony_ci  t('1.5', '1.5');
32023dd3b8Sopenharmony_ci  t('1.5', '-1.5');
33023dd3b8Sopenharmony_ci
34023dd3b8Sopenharmony_ci  t('0.00001', '-1e-5');
35023dd3b8Sopenharmony_ci  t('9000000000', '-9e9');
36023dd3b8Sopenharmony_ci  t('123456.7891011', '123456.7891011');
37023dd3b8Sopenharmony_ci  t('123456.7891011', -123456.7891011);
38023dd3b8Sopenharmony_ci  t('99', '99');
39023dd3b8Sopenharmony_ci  t('99', -99);
40023dd3b8Sopenharmony_ci  t('999.999', 999.999);
41023dd3b8Sopenharmony_ci  t('999.999', '-999.999');
42023dd3b8Sopenharmony_ci  t('1', new Decimal(-1));
43023dd3b8Sopenharmony_ci  t('1', new Decimal('-1'));
44023dd3b8Sopenharmony_ci  t('0.001', new Decimal(0.001));
45023dd3b8Sopenharmony_ci  t('0.001', new Decimal('-0.001'));
46023dd3b8Sopenharmony_ci
47023dd3b8Sopenharmony_ci  t('Infinity', Infinity);
48023dd3b8Sopenharmony_ci  t('Infinity', -Infinity);
49023dd3b8Sopenharmony_ci  t('Infinity', 'Infinity');
50023dd3b8Sopenharmony_ci  t('Infinity', '-Infinity');
51023dd3b8Sopenharmony_ci  t('NaN', NaN);
52023dd3b8Sopenharmony_ci  t('NaN', -NaN);
53023dd3b8Sopenharmony_ci  t('NaN', 'NaN');
54023dd3b8Sopenharmony_ci  t('NaN', '-NaN');
55023dd3b8Sopenharmony_ci
56023dd3b8Sopenharmony_ci  t('11.121', '11.121');
57023dd3b8Sopenharmony_ci  t('0.023842', '-0.023842');
58023dd3b8Sopenharmony_ci  t('1.19', '-1.19');
59023dd3b8Sopenharmony_ci  t('9.622e-11', '-0.00000000009622');
60023dd3b8Sopenharmony_ci  t('5.09e-10', '-0.000000000509');
61023dd3b8Sopenharmony_ci  t('3838.2', '3838.2');
62023dd3b8Sopenharmony_ci  t('127', '127.0');
63023dd3b8Sopenharmony_ci  t('4.23073', '4.23073');
64023dd3b8Sopenharmony_ci  t('2.5469', '-2.5469');
65023dd3b8Sopenharmony_ci  t('29949', '-29949');
66023dd3b8Sopenharmony_ci  t('277.1', '-277.10');
67023dd3b8Sopenharmony_ci  t('4.97898e-15', '-0.00000000000000497898');
68023dd3b8Sopenharmony_ci  t('53.456', '53.456');
69023dd3b8Sopenharmony_ci  t('100564', '-100564');
70023dd3b8Sopenharmony_ci  t('12431.9', '-12431.9');
71023dd3b8Sopenharmony_ci  t('97633.7', '-97633.7');
72023dd3b8Sopenharmony_ci  t('220', '220');
73023dd3b8Sopenharmony_ci  t('18.72', '18.720');
74023dd3b8Sopenharmony_ci  t('2817', '-2817');
75023dd3b8Sopenharmony_ci  t('44535', '-44535');
76023dd3b8Sopenharmony_ci
77023dd3b8Sopenharmony_ci  Decimal.toExpNeg = Decimal.toExpPos = 0;
78023dd3b8Sopenharmony_ci
79023dd3b8Sopenharmony_ci  t('5.2452468128e+1', '-5.2452468128e+1');
80023dd3b8Sopenharmony_ci  t('1.41525905257189365008396e+16', '1.41525905257189365008396e+16');
81023dd3b8Sopenharmony_ci  t('2.743068083928e+11', '2.743068083928e+11');
82023dd3b8Sopenharmony_ci  t('1.52993064722314247378724599e+26', '-1.52993064722314247378724599e+26');
83023dd3b8Sopenharmony_ci  t('3.7205576746e+10', '3.7205576746e+10');
84023dd3b8Sopenharmony_ci  t('2.663e-10', '-2.663e-10');
85023dd3b8Sopenharmony_ci  t('1.26574209965030360615518e+17', '-1.26574209965030360615518e+17');
86023dd3b8Sopenharmony_ci  t('1.052e+3', '1.052e+3');
87023dd3b8Sopenharmony_ci  t('4.452945872502e+6', '-4.452945872502e+6');
88023dd3b8Sopenharmony_ci  t('2.95732460816619226e+13', '2.95732460816619226e+13');
89023dd3b8Sopenharmony_ci  t('1.1923100194288654481424e+18', '-1.1923100194288654481424e+18');
90023dd3b8Sopenharmony_ci  t('8.99315449050893705e+6', '8.99315449050893705e+6');
91023dd3b8Sopenharmony_ci  t('5.200726538434486963e+8', '5.200726538434486963e+8');
92023dd3b8Sopenharmony_ci  t('1.182618278949368566264898065e+18', '1.182618278949368566264898065e+18');
93023dd3b8Sopenharmony_ci  t('3.815873266712e-20', '-3.815873266712e-20');
94023dd3b8Sopenharmony_ci  t('1.316675370382742615e+6', '-1.316675370382742615e+6');
95023dd3b8Sopenharmony_ci  t('2.1032502e+6', '-2.1032502e+6');
96023dd3b8Sopenharmony_ci  t('1.8e+1', '1.8e+1');
97023dd3b8Sopenharmony_ci  t('1.033525906631680944018544811261e-13', '1.033525906631680944018544811261e-13');
98023dd3b8Sopenharmony_ci  t('1.102361746443461856816e+14', '-1.102361746443461856816e+14');
99023dd3b8Sopenharmony_ci  t('8.595358491143959e+1', '8.595358491143959e+1');
100023dd3b8Sopenharmony_ci  t('1.226806049797304683867e-18', '1.226806049797304683867e-18');
101023dd3b8Sopenharmony_ci  t('5e+0', '-5e+0');
102023dd3b8Sopenharmony_ci  t('1.091168788407093537887970016e+15', '-1.091168788407093537887970016e+15');
103023dd3b8Sopenharmony_ci  t('3.87166413612272027e+12', '3.87166413612272027e+12');
104023dd3b8Sopenharmony_ci  t('1.411514e+5', '1.411514e+5');
105023dd3b8Sopenharmony_ci  t('1.0053454672509859631996e+22', '1.0053454672509859631996e+22');
106023dd3b8Sopenharmony_ci  t('6.9265714e+0', '6.9265714e+0');
107023dd3b8Sopenharmony_ci  t('1.04627709e+4', '1.04627709e+4');
108023dd3b8Sopenharmony_ci  t('2.285650225267766689304972e+5', '2.285650225267766689304972e+5');
109023dd3b8Sopenharmony_ci  t('4.5790517211306242e+7', '4.5790517211306242e+7');
110023dd3b8Sopenharmony_ci  t('3.0033340092338313923473428e+16', '-3.0033340092338313923473428e+16');
111023dd3b8Sopenharmony_ci  t('2.83879929283797623e+1', '-2.83879929283797623e+1');
112023dd3b8Sopenharmony_ci  t('4.5266377717178121183759377414e-5', '4.5266377717178121183759377414e-5');
113023dd3b8Sopenharmony_ci  t('5.3781e+4', '-5.3781e+4');
114023dd3b8Sopenharmony_ci  t('6.722035208213298413522819127e-18', '-6.722035208213298413522819127e-18');
115023dd3b8Sopenharmony_ci  t('3.02865707828281230987116e+23', '-3.02865707828281230987116e+23');
116023dd3b8Sopenharmony_ci
117023dd3b8Sopenharmony_ci  t('1e-9000000000000000', '1e-9000000000000000');
118023dd3b8Sopenharmony_ci  t('1e-9000000000000000', '-1e-9000000000000000');
119023dd3b8Sopenharmony_ci  t('0e+0', '-9.9e-9000000000000001');
120023dd3b8Sopenharmony_ci  t('9.999999e+9000000000000000', '9.999999e+9000000000000000');
121023dd3b8Sopenharmony_ci  t('9.999999e+9000000000000000', '-9.999999e+9000000000000000');
122023dd3b8Sopenharmony_ci  t('Infinity', '1E9000000000000001');
123023dd3b8Sopenharmony_ci  t('Infinity', '-1e+9000000000000001');
124023dd3b8Sopenharmony_ci  t('5.5879983320336874473209567979e+287894365', '-5.5879983320336874473209567979e+287894365');
125023dd3b8Sopenharmony_ci});
126