• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1if (typeof T === 'undefined') require('../setup');
2
3T('floor', function () {
4
5  function t(expected, n) {
6    T.assertEqual(expected, new Decimal(n).floor().valueOf());
7  }
8
9  Decimal.config({
10    precision: 20,
11    rounding: 4,
12    toExpNeg: -1e3,
13    toExpPos: 1e3,
14    minE: -9e15,
15    maxE: 9e15
16  });
17
18  t('0', 0);
19  t('-0', -0);
20  t('0', '0.000');
21  t('Infinity', Infinity);
22  t('-Infinity', -Infinity);
23  t('NaN', NaN);
24
25  t('0', 0.1);
26  t('0', '0.49999999999999994');
27  t('0', 0.5);
28  t('0', 0.7);
29  t('-1', -0.1);
30  t('-1', '-0.49999999999999994');
31  t('-1', -0.5);
32  t('-1', -0.7);
33  t('1', 1);
34  t('1', 1.1);
35  t('1', 1.5);
36  t('1', 1.7);
37  t('-1', -1);
38  t('-2', -1.1);
39  t('-2', -1.5);
40  t('-2', -1.7);
41
42  t('1', '1.0000000000000000000000001');
43  t('0', 0.999999999999);
44  t('9', '9.999999999999');
45  t('123456', 123456.789);
46  t('-2', '-1.0000000000000000000000001');
47  t('-1', -0.999999999999);
48  t('-10', '-9.999999999999');
49  t('-123457', -123456.789);
50
51  t('-2075365', '-2075364.364286541923');
52  t('60593539780450631', '60593539780450631');
53  t('65937898671515', '65937898671515');
54  t('-39719494751819198566799', '-39719494751819198566798.578');
55  t('92627382695288166556', '92627382695288166556.8683774524284866028260448205069');
56  t('-881574', '-881574');
57  t('-3633239210', '-3633239209.654526163275621746013315304191073405508491056');
58  t('-23970335459820625362', '-23970335459820625362');
59  t('131869457416154038', '131869457416154038');
60  t('-2685', '-2685');
61  t('-4542227861', '-4542227860.9511298545226');
62  t('-834103872107533086', '-834103872107533086');
63  t('-1501493189970436', '-1501493189970435.74866616700317');
64  t('70591', '70591.2244675522123484658978887');
65  t('4446128540401735117', '4446128540401735117.435836700611264749985822486641350492901');
66  t('-597273', '-597273');
67  t('729117', '729117.5');
68  t('-729118', '-729117.001');
69  t('4803729546823170064608098091', '4803729546823170064608098091');
70  t('-6581532150677269472830', '-6581532150677269472829.38194951340848938896000325718062365494');
71  t('2949426983040959', '2949426983040959.8911208825380208568451907');
72  t('25166', '25166.125888418871654557352055849116604612621573251770362');
73  t('4560569286495', '4560569286495.98300685103599898554605198');
74  t('13', '13.763105480576616251068323541559825687');
75  t('9050999219306', '9050999219306.7846946346757664893036971777');
76  t('39900924', '39900924.00000005');
77  t('115911043168452445', '115911043168452445');
78  t('20962819101135667464733349383', '20962819101135667464733349383.8959025798517496777183');
79  t('4125789711001606948191', '4125789711001606948191.4707575965791242737346836');
80  t('-6935502', '-6935501.294727166142750626019282');
81  t('-2', '-1.518418076611593764852321765899');
82  t('-35416', '-35416');
83  t('6912783515683955988122411164548', '6912783515683955988122411164548.393');
84  t('657', '657.0353902852');
85  t('0', '0.00000000000000000000000017921822306362413915');
86  t('1483059355427939255846407887', '1483059355427939255846407887.011361095342689876');
87  t('7.722e+999999999999999', '7.722e+999999999999999');
88  t('7722', '7722');
89  t('0', '0.00000005');
90  t('8551283060956479352', '8551283060956479352.5707396');
91  t('0', '0.000000000000000000000000019904267');
92  t('321978830777554620127500539', '321978830777554620127500539.339278568133088682532238002577');
93  t('2073', '2073.532654804291079327244387978249477171032485250998396');
94  t('677676305591', '677676305591.2');
95  t('39181479479778357', '39181479479778357');
96  t('0', '0.00000000000000000087964700066672916651');
97  t('115083055948552475', '115083055948552475');
98  t('9105942082143427451223', '9105942082143427451223');
99  t('0', '0.00000000000000000000004');
100  t('0', '0.000250427721966583680168028884692015623739');
101  t('0', '0.000000000001585613219016120158734661293405081934');
102  t('0', '0.00009');
103  t('0', '0.000000090358252973411013592234');
104  t('276312604693909858427', '276312604693909858427.21965306055697011390137926559');
105  t('0', '0.0000252');
106  t('1', '1.9999999999');
107
108  Decimal.toExpNeg = -100;
109  Decimal.toExpPos = 100;
110
111  t('-1', -1e-308);
112  t('-1e+308', -1e308);
113  t('2.1e+308', '2.1e308');
114  t('-1', '-1e-999');
115  t('0', '1e-999');
116  t('0', '1e-9000000000000000');
117  t('-1', '-1e-9000000000000000');
118  t('-0', '-9.9e-9000000000000001');  // underflow to zero
119  t('9.999999e+9000000000000000', '9.999999e+9000000000000000');
120  t('-9.999999e+9000000000000000', '-9.999999e+9000000000000000');
121  t('Infinity', '1E9000000000000001');
122  t('-Infinity', '-1e+9000000000000001');
123  t('5.5879983320336874473209567979e+287894365', '5.5879983320336874473209567979e+287894365');
124  t('-5.5879983320336874473209567979e+287894365', '-5.5879983320336874473209567979e+287894365');
125});
126