1023dd3b8Sopenharmony_ciif (typeof T === 'undefined') require('../setup');
2023dd3b8Sopenharmony_ci
3023dd3b8Sopenharmony_ciT('trunc', function () {
4023dd3b8Sopenharmony_ci
5023dd3b8Sopenharmony_ci  function t(expected, n) {
6023dd3b8Sopenharmony_ci    T.assertEqual(expected, new Decimal(n).trunc().valueOf());
7023dd3b8Sopenharmony_ci  }
8023dd3b8Sopenharmony_ci
9023dd3b8Sopenharmony_ci  Decimal.config({
10023dd3b8Sopenharmony_ci    precision: 20,
11023dd3b8Sopenharmony_ci    rounding: 4,
12023dd3b8Sopenharmony_ci    toExpNeg: -1e3,
13023dd3b8Sopenharmony_ci    toExpPos: 1e3,
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.000');
21023dd3b8Sopenharmony_ci  t('Infinity', Infinity);
22023dd3b8Sopenharmony_ci  t('-Infinity', -Infinity);
23023dd3b8Sopenharmony_ci  t('NaN', NaN);
24023dd3b8Sopenharmony_ci
25023dd3b8Sopenharmony_ci  t('0', 0.1);
26023dd3b8Sopenharmony_ci  t('0', '0.49999999999999994');
27023dd3b8Sopenharmony_ci  t('0', 0.5);
28023dd3b8Sopenharmony_ci  t('0', 0.7);
29023dd3b8Sopenharmony_ci  t('-0', -0.1);
30023dd3b8Sopenharmony_ci  t('-0', '-0.49999999999999994');
31023dd3b8Sopenharmony_ci  t('-0', -0.5);
32023dd3b8Sopenharmony_ci  t('-0', -0.7);
33023dd3b8Sopenharmony_ci  t('1', 1);
34023dd3b8Sopenharmony_ci  t('1', 1.1);
35023dd3b8Sopenharmony_ci  t('1', 1.5);
36023dd3b8Sopenharmony_ci  t('1', 1.7);
37023dd3b8Sopenharmony_ci  t('-1', -1);
38023dd3b8Sopenharmony_ci  t('-1', -1.1);
39023dd3b8Sopenharmony_ci  t('-1', -1.5);
40023dd3b8Sopenharmony_ci  t('-1', -1.7);
41023dd3b8Sopenharmony_ci
42023dd3b8Sopenharmony_ci  t('1', '1.9999999999');
43023dd3b8Sopenharmony_ci  t('-1', '-1.9999999999');
44023dd3b8Sopenharmony_ci
45023dd3b8Sopenharmony_ci  t('-2075364', '-2075364.364286541923');
46023dd3b8Sopenharmony_ci  t('60593539780450631', '60593539780450631');
47023dd3b8Sopenharmony_ci  t('65937898671515', '65937898671515');
48023dd3b8Sopenharmony_ci  t('-39719494751819198566798', '-39719494751819198566798.578');
49023dd3b8Sopenharmony_ci  t('92627382695288166556', '92627382695288166556.8683774524284866028260448205069');
50023dd3b8Sopenharmony_ci  t('-881574', '-881574');
51023dd3b8Sopenharmony_ci  t('-3633239209', '-3633239209.654526163275621746013315304191073405508491056');
52023dd3b8Sopenharmony_ci  t('-23970335459820625362', '-23970335459820625362');
53023dd3b8Sopenharmony_ci  t('131869457416154038', '131869457416154038');
54023dd3b8Sopenharmony_ci  t('-4542227860', '-4542227860.9511298545226');
55023dd3b8Sopenharmony_ci  t('2416872281', '2416872281.963955669484225137349193306323379254936827');
56023dd3b8Sopenharmony_ci  t('-757684868752087594264588207655', '-757684868752087594264588207655.27838048392835556');
57023dd3b8Sopenharmony_ci  t('-438798503526', '-438798503526.2317623894721299587561697');
58023dd3b8Sopenharmony_ci  t('801625782231888715214665', '801625782231888715214665');
59023dd3b8Sopenharmony_ci  t('327765350218284325239839632046', '327765350218284325239839632046.91682741746683081459605386');
60023dd3b8Sopenharmony_ci  t('-7469045007691432294', '-7469045007691432294.362757245');
61023dd3b8Sopenharmony_ci  t('8365540212937142194319515218789', '8365540212937142194319515218789.4106658678537421977827');
62023dd3b8Sopenharmony_ci  t('-14108', '-14108.495051214515');
63023dd3b8Sopenharmony_ci  t('49104501', '49104501.10055989379655329194309526150310568683504206945625');
64023dd3b8Sopenharmony_ci  t('131370406', '131370406.330005158136313262837556068534122953');
65023dd3b8Sopenharmony_ci  t('-689', '-689.6944252229740521128820354989299283');
66023dd3b8Sopenharmony_ci  t('73441822178', '73441822178.572653');
67023dd3b8Sopenharmony_ci  t('-2329', '-2329.42655772223486531483602927572548264457');
68023dd3b8Sopenharmony_ci  t('-834103872107533086', '-834103872107533086');
69023dd3b8Sopenharmony_ci  t('-1501493189970435', '-1501493189970435.74866616700317');
70023dd3b8Sopenharmony_ci  t('70591', '70591.2244675522123484658978887');
71023dd3b8Sopenharmony_ci  t('4446128540401735117', '4446128540401735117.435836700611264749985822486641350492901');
72023dd3b8Sopenharmony_ci  t('-597273', '-597273');
73023dd3b8Sopenharmony_ci  t('729117', '729117');
74023dd3b8Sopenharmony_ci  t('-6581532150677269472829', '-6581532150677269472829.38194951340848938896000325718062365494');
75023dd3b8Sopenharmony_ci  t('-131279182164804751', '-131279182164804751.430589952021038264');
76023dd3b8Sopenharmony_ci  t('2949426983040959', '2949426983040959.8911208825380208568451907');
77023dd3b8Sopenharmony_ci  t('25166', '25166.125888418871654557352055849116604612621573251770362');
78023dd3b8Sopenharmony_ci  t('4560569286495', '4560569286495.98300685103599898554605198');
79023dd3b8Sopenharmony_ci  t('13', '13.763105480576616251068323541559825687');
80023dd3b8Sopenharmony_ci  t('9050999219306', '9050999219306.7846946346757664893036971777');
81023dd3b8Sopenharmony_ci  t('20962819101135667464733349383', '20962819101135667464733349383.8959025798517496777183');
82023dd3b8Sopenharmony_ci  t('4125789711001606948191', '4125789711001606948191.4707575965791242737346836');
83023dd3b8Sopenharmony_ci  t('-6935501', '-6935501.294727166142750626019282');
84023dd3b8Sopenharmony_ci  t('-1', '-1.518418076611593764852321765899');
85023dd3b8Sopenharmony_ci  t('6912783515683955988122411164548', '6912783515683955988122411164548.393');
86023dd3b8Sopenharmony_ci  t('657', '657.0353902852');
87023dd3b8Sopenharmony_ci  t('0', '0.00000000000000000000000017921822306362413915');
88023dd3b8Sopenharmony_ci  t('1483059355427939255846407887', '1483059355427939255846407887.011361095342689876');
89023dd3b8Sopenharmony_ci  t('8551283060956479352', '8551283060956479352.5707396');
90023dd3b8Sopenharmony_ci  t('0', '0.000000000000000000000000019904267');
91023dd3b8Sopenharmony_ci  t('321978830777554620127500539', '321978830777554620127500539.339278568133088682532238002577');
92023dd3b8Sopenharmony_ci  t('2073', '2073.532654804291079327244387978249477171032485250998396');
93023dd3b8Sopenharmony_ci  t('677676305591', '677676305591.2');
94023dd3b8Sopenharmony_ci  t('0', '0.0000000000006');
95023dd3b8Sopenharmony_ci  t('39181479479778357', '39181479479778357');
96023dd3b8Sopenharmony_ci  t('0', '0.00000000000000000087964700066672916651');
97023dd3b8Sopenharmony_ci  t('896', '896');
98023dd3b8Sopenharmony_ci  t('115083055948552475', '115083055948552475');
99023dd3b8Sopenharmony_ci  t('9105942082143427451223', '9105942082143427451223');
100023dd3b8Sopenharmony_ci  t('0', '0.0000000000000009');
101023dd3b8Sopenharmony_ci  t('0', '0.00000000000000000000004');
102023dd3b8Sopenharmony_ci  t('0', '0.000250427721966583680168028884692015623739');
103023dd3b8Sopenharmony_ci  t('0', '0.000000000001585613219016120158734661293405081934');
104023dd3b8Sopenharmony_ci  t('0', '0.000000090358252973411013592234');
105023dd3b8Sopenharmony_ci  t('276312604693909858427', '276312604693909858427.21965306055697011390137926559');
106023dd3b8Sopenharmony_ci  t('0', '0.0000252');
107023dd3b8Sopenharmony_ci
108023dd3b8Sopenharmony_ci  Decimal.toExpNeg = -100;
109023dd3b8Sopenharmony_ci  Decimal.toExpPos = 100;
110023dd3b8Sopenharmony_ci
111023dd3b8Sopenharmony_ci  t('-0', -1e-308);
112023dd3b8Sopenharmony_ci  t('-1e+308', -1e308);
113023dd3b8Sopenharmony_ci  t('2.1e+308', '2.1e308');
114023dd3b8Sopenharmony_ci  t('-0', '-1e-999');
115023dd3b8Sopenharmony_ci  t('0', '1e-999');
116023dd3b8Sopenharmony_ci  t('0', '1e-9000000000000000');
117023dd3b8Sopenharmony_ci  t('-0', '-1e-9000000000000000');
118023dd3b8Sopenharmony_ci  t('-0', '-9.9e-9000000000000001');  // underflow to zero
119023dd3b8Sopenharmony_ci  t('9.999999e+9000000000000000', '9.999999e+9000000000000000');
120023dd3b8Sopenharmony_ci  t('-9.999999e+9000000000000000', '-9.999999e+9000000000000000');
121023dd3b8Sopenharmony_ci  t('Infinity', '1E9000000000000001');
122023dd3b8Sopenharmony_ci  t('-Infinity', '-1e+9000000000000001');
123023dd3b8Sopenharmony_ci  t('5.5879983320336874473209567979e+287894365', '5.5879983320336874473209567979e+287894365');
124023dd3b8Sopenharmony_ci  t('-5.5879983320336874473209567979e+287894365', '-5.5879983320336874473209567979e+287894365');
125023dd3b8Sopenharmony_ci});
126