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