1023dd3b8Sopenharmony_ciif (typeof T === 'undefined') require('../setup');
2023dd3b8Sopenharmony_ci
3023dd3b8Sopenharmony_ciT('valueOf', function () {
4023dd3b8Sopenharmony_ci
5023dd3b8Sopenharmony_ci  function t(expected, n) {
6023dd3b8Sopenharmony_ci    T.assertEqual(expected, new Decimal(n).valueOf());
7023dd3b8Sopenharmony_ci  }
8023dd3b8Sopenharmony_ci
9023dd3b8Sopenharmony_ci  Decimal.config({
10023dd3b8Sopenharmony_ci    precision: 20,
11023dd3b8Sopenharmony_ci    rounding: 4,
12023dd3b8Sopenharmony_ci    toExpNeg: -9e15,
13023dd3b8Sopenharmony_ci    toExpPos: 9e15,
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('NaN', NaN);
21023dd3b8Sopenharmony_ci  t('NaN', 'NaN');
22023dd3b8Sopenharmony_ci  t('Infinity', 1/0);
23023dd3b8Sopenharmony_ci  t('Infinity', 'Infinity');
24023dd3b8Sopenharmony_ci  t('1', 1);
25023dd3b8Sopenharmony_ci  t('9', 9);
26023dd3b8Sopenharmony_ci  t('90', 90);
27023dd3b8Sopenharmony_ci  t('90.12', 90.12);
28023dd3b8Sopenharmony_ci  t('0.1', 0.1);
29023dd3b8Sopenharmony_ci  t('0.01', 0.01);
30023dd3b8Sopenharmony_ci  t('0.0123', 0.0123);
31023dd3b8Sopenharmony_ci  t('111111111111111111111',   '111111111111111111111');
32023dd3b8Sopenharmony_ci  t('0.00001', 0.00001);
33023dd3b8Sopenharmony_ci
34023dd3b8Sopenharmony_ci  t('-0', -0);
35023dd3b8Sopenharmony_ci  t('-0', '-0');
36023dd3b8Sopenharmony_ci  t('-Infinity', -1/0);
37023dd3b8Sopenharmony_ci  t('-Infinity', '-Infinity');
38023dd3b8Sopenharmony_ci  t('-1', -1);
39023dd3b8Sopenharmony_ci  t('-9', -9);
40023dd3b8Sopenharmony_ci  t('-90', -90);
41023dd3b8Sopenharmony_ci  t('-90.12', -90.12);
42023dd3b8Sopenharmony_ci  t('-0.1', -0.1);
43023dd3b8Sopenharmony_ci  t('-0.01', -0.01);
44023dd3b8Sopenharmony_ci  t('-0.0123', -0.0123);
45023dd3b8Sopenharmony_ci  t('-111111111111111111111',  '-111111111111111111111');
46023dd3b8Sopenharmony_ci  t('-0.00001', -0.00001);
47023dd3b8Sopenharmony_ci
48023dd3b8Sopenharmony_ci  // Exponential format
49023dd3b8Sopenharmony_ci  Decimal.toExpNeg = Decimal.toExpPos = 0;
50023dd3b8Sopenharmony_ci
51023dd3b8Sopenharmony_ci  t('1e-7', 0.0000001);
52023dd3b8Sopenharmony_ci  t('1.23e-7', 0.000000123);
53023dd3b8Sopenharmony_ci  t('1.2e-8', 0.000000012);
54023dd3b8Sopenharmony_ci  t('-1e-7', -0.0000001);
55023dd3b8Sopenharmony_ci  t('-1.23e-7', -0.000000123);
56023dd3b8Sopenharmony_ci  t('-1.2e-8', -0.000000012);
57023dd3b8Sopenharmony_ci
58023dd3b8Sopenharmony_ci  t('5.73447902457635174479825134e+14', '573447902457635.174479825134');
59023dd3b8Sopenharmony_ci  t('1.07688e+1', '10.7688');
60023dd3b8Sopenharmony_ci  t('3.171194102379077141557759899307946350455841e+27', '3171194102379077141557759899.307946350455841');
61023dd3b8Sopenharmony_ci  t('4.924353466898191177698653319742594890634579e+37', '49243534668981911776986533197425948906.34579');
62023dd3b8Sopenharmony_ci  t('6.85558243926569397328633907445409866949445343654692955e+18', '6855582439265693973.28633907445409866949445343654692955');
63023dd3b8Sopenharmony_ci  t('1e+0', '1');
64023dd3b8Sopenharmony_ci});
65023dd3b8Sopenharmony_ci
66