You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
MikeMcl_decimal.js/test/toFixed.js

1123 lines
68 KiB

var count = (function toFixed(Decimal) {
var start = +new Date(),
log,
error,
u,
passed = 0,
total = 0;
if (typeof window === 'undefined') {
log = console.log;
error = console.error;
} else {
log = function (str) { document.body.innerHTML += str.replace('\n', '<br>') };
error = function (str) { document.body.innerHTML += '<div style="color: red">' +
str.replace('\n', '<br>') + '</div>' };
}
if (!Decimal && typeof require === 'function') Decimal = require('../decimal.js');
function assert(expected, actual) {
total++;
if (expected !== actual) {
error('\n Test number: ' + total + ' failed');
error(' Expected: ' + expected);
error(' Actual: ' + actual);
//process.exit();
} else {
passed++;
//log('\n Expected and actual: ' + actual);
}
}
function assertException(func, message) {
var actual;
total++;
try {
func();
} catch (e) {
actual = e;
}
if (actual && actual.name == 'Decimal Error') {
passed++;
//log('\n Expected and actual: ' + actual);
} else {
error('\n Test number: ' + total + ' failed');
error('\n Expected: ' + message + ' to raise a Decimal Error.');
error(' Actual: ' + (actual || 'no exception'));
//process.exit();
}
}
function T(expected, value, decimalPlaces){
assert(String(expected), new Decimal(value).toFixed(decimalPlaces));
}
log('\n Testing toFixed...');
Decimal.config({
precision: 20,
rounding: 4,
errors: true,
toExpNeg: -9e15,
toExpPos: 9e15,
minE: -9e15,
maxE: 9e15
});
/*
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toFixed
JS: 2.26.toFixed(5) returns 2.26000
JS: -2.26.toFixed(5) returns -2.26
Decimal: new Decimal(-2.26).toFixed(5) returns -2.26000
*/
T('100.0', 99.9512986, 1);
T('10.0', 9.95036, 1);
T('1.0', 0.99, 1);
T('0.10', 0.09906, 2);
T('0.010', 0.0098034, 3);
T('NaN', NaN, 2);
T('Infinity', 1/0, 2);
T('-Infinity', -1/0, 2);
T('1111111111111111111111.00000000', '1111111111111111111111', 8);
T('0.1', 0.1, 1);
T('0.10', 0.1, 2);
T('0.100', 0.1, 3);
T('0.01', 0.01, 2);
T('0.010', 0.01, 3);
T('0.0100', 0.01, 4);
T('0.00', 0.001, 2);
T('0.001', 0.001, 3);
T('0.0010', 0.001, 4);
T('1.0000', 1, 4);
T('1.0', 1, 1);
T('1', 1, 0);
T('12', 12, 0);
T('1', 1.1, 0);
T('12', 12.1, 0);
T('1', 1.12, 0);
T('12', 12.12, 0);
T('0.0000006', 0.0000006, 7);
T('0.00000006', 0.00000006, 8);
T('0.000000060', 0.00000006, 9);
T('0.0000000600', 0.00000006, 10);
T('0', 0, 0);
T('0.0', 0, 1);
T('0.00', 0, 2);
T('-1111111111111111111111.00000000', '-1111111111111111111111', 8);
T('-0.1', -0.1, 1);
T('-0.10', -0.1, 2);
T('-0.100', -0.1, 3);
T('-0.01', -0.01, 2);
T('-0.010', -0.01, 3);
T('-0.0100', -0.01, 4);
T('-0.00', -0.001, 2);
T('-0.001', -0.001, 3);
T('-0.0010', -0.001, 4);
T('-1.0000', -1, 4);
T('-1.0', -1, 1);
T('-1', -1, 0);
T('-1', -1.1, 0);
T('-12', -12.1, 0);
T('-1', -1.12, 0);
T('-12', -12.12, 0);
T('-0.00000', -0.0000006, 5);
T('-0.0000006', -0.0000006, 7);
T('-0.00000006', -0.00000006, 8);
T('-0.000000060', -0.00000006, 9);
T('-0.0000000600', -0.00000006, 10);
T('0', 0, 0);
T('0', -0, 0);
T('0.0', -0, 1);
T('0.00', -0, 2);
T('0.00', '-0.0', 2);
T('0.00', '-0.0000', 2);
T('0.0000', -0, 4);
T('1000', 1000, u);
T('0.00001', 0.00001, u);
T('0.00001', 0.00001, 5);
T('0.00000000000000000010', '0.0000000000000000001', 20);
T('0.00001000000000000', 0.00001, 17);
T('1.00000000000000000', 1, 17);
T('1000000000000000128', '1000000000000000128', u);
T('100000000000000128.0', '100000000000000128', 1);
T('10000000000000128.00', '10000000000000128', 2);
T('10000000000000128.00000000000000000000', '10000000000000128', 20);
T('0', 0, u);
T('-42.000', -42, 3);
T('-1000000000000000128', '-1000000000000000128', u);
T('-0.00000000000000000010', '-0.0000000000000000001', 20);
T('0.12312312312312300000', '0.123123123123123', 20);
T('1', 0.5, 0);
T('-1', -0.5, 0);
T('1.3', 1.25, 1);
T('234.2041', 234.20405, 4);
T('234.2041', '234.204050000000000000000000000000006', 4);
Decimal.rounding = 0;
T('0.000001', '0.000001', 6);
T('6552606716539719300271040797809220.3', '6552606716539719300271040797809220.237838405', 1);
T('25605410.260045950231371', '25605410.260045950231370974066', 15);
T('-65593283.0000', '-65593283', 4);
T('-2238743875407788208860272230040067273281097722822075126.88000000000', '-2238743875407788208860272230040067273281097722822075126.88', 11);
T('-1714042659419404211.0000000', '-1714042659419404211', 7);
T('580861301.000', '580861301', 3);
T('-495746734.000', '-495746734', 3);
T('-909962202.00000', '-909962202', 5);
T('-6588.00', '-6588', 2);
T('-89235424125324.000000', '-89235424125324', 6);
T('-0.0001', '-0.0000000000177', 4);
T('-0.1', '-0.000000000000007', 1);
T('7086047552021418140460170703933026989776558656.864197000000000', '7086047552021418140460170703933026989776558656.864197', 15);
T('-0.0000000001', '-0.0000000000000000007707', 10);
T('6613833500.133407255728', '6613833500.133407255727325566781771', 12);
T('-0.60', '-0.6', 2);
T('-5800577761301861465745732694236894834.347199790459214393940', '-5800577761301861465745732694236894834.34719979045921439394', 21);
T('65495133621931312001260.90', '65495133621931312001260.89870016055223846451749943336585697', 2);
T('-0.0000001', '-0.0000000000021727264987520611266069544793244453321336', 7);
T('5138338134667513058267845351654.0073', '5138338134667513058267845351654.007282', 4);
T('-419591612781413402.1606094651083282', '-419591612781413402.16060946510832813452', 16);
T('-842984708.00000', '-842984708', 5);
T('6094679992788973717749530934167375519948195193196.00000000000', '6094679992788973717749530934167375519948195193196', 11);
T('3070926.00', '3070926', 2);
T('-49738484.22445560175', '-49738484.2244556017464380224443566512165424404', 11);
T('0.01', '0.007252154601', 2);
T('0.01', '0.0000000008450464516429601', 2);
T('64191341.1515', '64191341.151484', 4);
T('-0.0000000000000004274', '-0.00000000000000042733957907641417564294', 19);
T('-307434.0', '-307434', 1);
T('-7155930111672774753753.84501482871023', '-7155930111672774753753.845014828710226', 14);
T('-204638.0', '-204638', 1);
T('67354.81', '67354.801797', 2);
T('0.000042911675', '0.000042911674899533228107357062', 12);
T('-57865060735863.5903347110', '-57865060735863.590334711', 10);
T('-0.00889', '-0.0088857', 5);
T('655593535442553089245040020344044.000000000000', '655593535442553089245040020344044', 12);
T('-2077237944012133216588518213.9402', '-2077237944012133216588518213.9401561759783653376', 4);
T('3354.50', '3354.49314543', 2);
T('-0.00001', '-0.000000000000091204118667391473401958802734362777499449233', 5);
T('-2817626898661648124242602088971648489124280903.00000000000000000000000', '-2817626898661648124242602088971648489124280903', 23);
T('-0.1138', '-0.1137406345875745478881089475981775971743', 4);
T('372625.84', '372625.836933301', 2);
T('-0.0001', '-0.0000000000030295', 4);
T('-0.20133282610692', '-0.2013328261069183505168093992697', 14);
T('-674022381434.84086', '-674022381434.840858317', 5);
T('527.32194354633', '527.32194354632981665427056720389485101', 11);
T('0.0000000195361247565', '0.0000000195361247564008390550978147981600411', 19);
T('-2163002984808367617.0000', '-2163002984808367617', 4);
T('-4169664275471960031191605200147601022249457082609196211576.20000000000000000000000', '-4169664275471960031191605200147601022249457082609196211576.2', 23);
T('-0.00000000000555130', '-0.0000000000055512969161980904744035', 17);
T('119869956144.00', '119869956144', 2);
T('1.039', '1.038251882646323867920972358898559', 3);
T('-2.0', '-2', 1);
T('7410.197760931', '7410.197760930626987673', 9);
T('6638110167526.00', '6638110167526', 2);
T('30974929342171050427055113.00', '30974929342171050427055113', 2);
T('43480882950025886012415275271059692966.000', '43480882950025886012415275271059692966', 3);
T('-0.1', '-0.0000004587260575000190182731', 1);
T('-71828326035.100387343565950831', '-71828326035.100387343565950830073177108125', 18);
T('-552954262470932495380914766735683420381508430032672.0000000000000', '-552954262470932495380914766735683420381508430032672', 13);
T('-0.001', '-0.000000006438270583885530971500187308778545384', 3);
T('-1241063214283490729682249.3542720483313661438', '-1241063214283490729682249.35427204833136614379131332498', 19);
T('50729670708122152413903981650812767483.000000000000000000', '50729670708122152413903981650812767483', 18);
T('-0.8', '-0.73086389033', 1);
T('0.000000001', '0.0000000000035654453258182342271756', 9);
T('-37426128484776251838279429.00000', '-37426128484776251838279429', 5);
T('-8858815238086078991845344.00', '-8858815238086078991845344', 2);
T('715713000263082248.000', '715713000263082248', 3);
T('-1290.35664066483299', '-1290.35664066483298067128266141875', 14);
T('-0.00000008453', '-0.0000000845275307904197645672104', 11);
T('-435325479515.000000', '-435325479515', 6);
T('-55.026', '-55.0259854614935863191307', 3);
T('-111827547395883838719196940005789974871114521059.00000000000000000000000', '-111827547395883838719196940005789974871114521059', 23);
T('-0.80', '-0.8', 2);
T('-8.17139161520009', '-8.1713916152000874707093159619488493836845705', 14);
T('769000136593201.985181', '769000136593201.98518095', 6);
T('31159491831470011.07740834271415', '31159491831470011.0774083427141446999', 14);
T('89059.299592037965784', '89059.2995920379657839664222340962987295864685207', 15);
T('0.1', '0.06', 1);
T('-4570519.0000', '-4570519', 4);
T('-0.0000001518', '-0.000000151731483260580950465152613377577649917', 10);
T('-5555052692.071431452', '-5555052692.07143145120571654571684469634938224716', 9);
T('0.01', '0.0000000735211529638724323811564431527925439', 2);
T('-230061001007826663915617395042288.847216199000', '-230061001007826663915617395042288.847216199', 12);
T('-6453992990066244249806.375375876294395', '-6453992990066244249806.3753758762943945461637495930201559', 15);
T('-0.01', '-0.0000026377450289082142641925', 2);
T('-363618346.0', '-363618346', 1);
T('0.01', '0.00000000009', 2);
T('65432262394897701468848832.7', '65432262394897701468848832.607978068443545803141', 1);
T('567040263395365029.000', '567040263395365029', 3);
T('7431958669891786786543853147278.580', '7431958669891786786543853147278.58', 3);
T('0.0580', '0.0579400993437', 4);
T('-5364310483511374687804726517179019251624044430754.23807000000000', '-5364310483511374687804726517179019251624044430754.23807', 14);
T('81096.00', '81096', 2);
T('-0.000000766905', '-0.00000076690484881136751175461310751844214625312811858607148', 12);
T('837.0', '837', 1);
T('-0.000001', '-0.0000000003241605066758965441271096586120022721670744987061', 6);
T('18848356500282.000000', '18848356500282', 6);
T('-6865183293234767102.91096748000', '-6865183293234767102.91096748', 11);
Decimal.rounding = 1;
T('0.3', '0.3', 1);
T('-200258348374.3', '-200258348374.3595802551014614089785610548492885372322083789', 1);
T('-8996550690041157178188143247448286757711.5580857413', '-8996550690041157178188143247448286757711.55808574133329', 10);
T('-3172413669280032477.00', '-3172413669280032477', 2);
T('6547946357820.750067107731812021675', '6547946357820.750067107731812021675351468709784004', 21);
T('24188393190716631282750407915133817062572333100239.0000000000000000000', '24188393190716631282750407915133817062572333100239', 19);
T('539982361589798324286450574560330534901309503.82000000', '539982361589798324286450574560330534901309503.82', 8);
T('829898800701640360552652.0000', '829898800701640360552652', 4);
T('-1585782773394.4', '-1585782773394.44501382110847', 1);
T('-7604844176594943774211951887242195107.399', '-7604844176594943774211951887242195107.399576743428669618164', 3);
T('-0.00', '-0.0000000000000005153003506839', 2);
T('0.000', '0.00003', 3);
T('-5454249481540317712.560293859013731302', '-5454249481540317712.56029385901373130215526009738012974642338', 18);
T('15352607654972198961429295651185206861818141054385638.00000000000000000', '15352607654972198961429295651185206861818141054385638', 17);
T('91494535411039025233040.292', '91494535411039025233040.29224903220309368507011', 3);
T('2043369316.0', '2043369316', 1);
T('-0.0000000782350618457', '-0.0000000782350618457630647420312027682238301541350414', 19);
T('2122652.0', '2122652', 1);
T('-0.00841365', '-0.00841365099301981489219310202029642', 8);
T('0.0', '0.0007035', 1);
T('-0.00000000000000374916', '-0.0000000000000037491685778894015479084539735777088', 20);
T('534883638.00', '534883638', 2);
T('-2.0', '-2', 1);
T('-5634442247266825358399629799939027370665.0000000000000000000', '-5634442247266825358399629799939027370665', 19);
T('3331187169219186569122.000000000', '3331187169219186569122', 9);
T('0.0000000000', '0.0000000000006604395609805032330367635527', 10);
T('-0.0000000000000576901', '-0.00000000000005769013292086168690493327', 19);
T('-661.8', '-661.828596629053201916486', 1);
T('-6073555395665254434249128854999349235744174928042756.1153000000000', '-6073555395665254434249128854999349235744174928042756.1153', 13);
T('-5013086846966.000', '-5013086846966', 3);
T('0.004015', '0.00401523226833', 6);
T('3140295374107374579919222510.1462722', '3140295374107374579919222510.1462722819395532', 7);
T('-0.000000', '-0.00000000000000799876460379334679831886', 6);
T('-0.00', '-0.0003', 2);
T('-0.026760766726884267', '-0.026760766726884267750393307117624838556001925491', 18);
T('-20821740502968847857923433558797.0899', '-20821740502968847857923433558797.08997487843745', 4);
T('0.00000000002', '0.000000000020346524414696573703092255317751132892', 11);
T('45492073832204366341299301624.000000000', '45492073832204366341299301624', 9);
T('-22166905155222048275755520049666636.000000000000000', '-22166905155222048275755520049666636', 15);
T('-0.0047749609085292677147', '-0.00477496090852926771478756451899887586311084', 22);
T('0.0000000000066505751320542', '0.000000000006650575132054209449586010993453988006221893652', 25);
T('-5987959.1630276586738', '-5987959.163027658673856586', 13);
T('-1666.00', '-1666', 2);
T('634686619827216246836355610829.00000', '634686619827216246836355610829', 5);
T('-4775591515709.469953191321103401', '-4775591515709.4699531913211034017874029213583522324151968262', 18);
T('-0.00209248872211', '-0.002092488722118037239933953031151990638700454763', 14);
T('4592542353054190400811174084.8269203906', '4592542353054190400811174084.826920390637', 10);
T('-2719622410429690231797721788738949434271171.000000000', '-2719622410429690231797721788738949434271171', 9);
T('7481081126833353571249877375770446139269602514514.000000000000000', '7481081126833353571249877375770446139269602514514', 15);
T('-717308374940.1455264110', '-717308374940.145526411005821148802846366045624291352081913', 10);
T('-0.000000007', '-0.000000007385554720977', 9);
T('-0.000861389378754506340', '-0.000861389378754506340296565696012302905659179798', 21);
T('-5053251493102402525630380749.678', '-5053251493102402525630380749.6785380807585', 3);
T('-4.0', '-4', 1);
T('-91608.490784509096643367058', '-91608.49078450909664336705884736640894006', 21);
T('0.000', '0.000000008', 3);
T('-60759551763816025544062865222.0000000000', '-60759551763816025544062865222', 10);
T('1052.9354577213309', '1052.93545772133093448862729794627180236152', 13);
T('45267509474.0', '45267509474', 1);
T('3157315152.00', '3157315152', 2);
T('-0.5', '-0.5', 1);
T('0.0057546', '0.005754639024965241832260499185230186', 7);
T('-0.000', '-0.0006', 3);
T('3230791870040253164174259086.74466486260', '3230791870040253164174259086.7446648626', 11);
T('-4344423254203589122222715762047.000000', '-4344423254203589122222715762047', 6);
T('0.000000', '0.00000000000000000005', 6);
T('-0.00000000', '-0.0000000000000032995964759', 8);
T('29342667392627.13800502090', '29342667392627.1380050209', 11);
T('3553322646.0000', '3553322646', 4);
T('0.0000000', '0.000000000000711595888783922', 7);
T('128714169681975260747586179339689165715468750318817.0', '128714169681975260747586179339689165715468750318817', 1);
T('-203846045708188631.7', '-203846045708188631.714385911896349', 1);
T('6732937084326281547153681265380857817.680', '6732937084326281547153681265380857817.68', 3);
T('-80645.000', '-80645', 3);
T('0.0091340467346905226', '0.0091340467346905226577831006050168789952519932147436292', 19);
T('765350910755641789513513452874635492095713.000000000000000000', '765350910755641789513513452874635492095713', 18);
T('7619917853284.00', '7619917853284', 2);
T('-7584198211496430223.4315410358218089229', '-7584198211496430223.43154103582180892294235232', 19);
T('-2946097370887492968389.2786430820000', '-2946097370887492968389.278643082', 13);
T('-400129748.000', '-400129748', 3);
T('-76362970460470638842230785495147305876.114384970200', '-76362970460470638842230785495147305876.1143849702', 12);
T('334029398796150851211670406157956664329.0000000000000', '334029398796150851211670406157956664329', 13);
T('-0.000000000000', '-0.000000000000000000881892851839338487244179354', 12);
T('-70475264003.0000', '-70475264003', 4);
T('0.080', '0.0809', 3);
T('16917787280140934145228.000', '16917787280140934145228', 3);
T('25909519297999779346.000000000', '25909519297999779346', 9);
T('-355224.19720319810644', '-355224.19720319810644496969482', 14);
T('8482635122899359930368306655493255835883236244.0000000000000', '8482635122899359930368306655493255835883236244', 13);
T('41268046802033799763539654473098094614587.00000000000000000', '41268046802033799763539654473098094614587', 17);
T('8564065673925609331469179144.0', '8564065673925609331469179144', 1);
T('-231732424.30838', '-231732424.3083887160672296965273691583237367', 5);
T('-597740668669015342275289261436747905744110289638.43026849', '-597740668669015342275289261436747905744110289638.430268497449', 8);
T('8297509140414599.000000', '8297509140414599', 6);
T('-17320207086212822899.00', '-17320207086212822899', 2);
T('0.00', '0.000000000002', 2);
T('4972.517305', '4972.51730546661166855901714', 6);
T('0.000000', '0.0000000162819653537555368724511902456803362906', 6);
T('29485932208290816133111088923502731.000000', '29485932208290816133111088923502731', 6);
T('0.0000', '0.000000000006', 4);
Decimal.rounding = 2;
T('7810971819938620325901899057970512790433.0000000000000000', '7810971819938620325901899057970512790433', 16);
T('-623395.0', '-623395', 1);
T('81334094079413997693749807.000000000000', '81334094079413997693749807', 12);
T('790143966.5', '790143966.406169480041929356421', 1);
T('-0.000485', '-0.0004851099615478', 6);
T('843581583868277359263.9721265', '843581583868277359263.97212648230399373761717', 7);
T('-921038771017147427324121032.000000', '-921038771017147427324121032', 6);
T('-823.0', '-823', 1);
T('505.0', '505', 1);
T('-866703339332502.8636000', '-866703339332502.8636', 7);
T('46.0', '46', 1);
T('60042202798790129685.0000000', '60042202798790129685', 7);
T('-1847392.0000', '-1847392', 4);
T('-4580251343840510165820631684073999841789879.0000000000000000000000', '-4580251343840510165820631684073999841789879', 22);
T('3501378778000.539063748827265447', '3501378778000.5390637488272654464266281832626835121535730779', 18);
T('0.000000004686', '0.000000004685387489140232', 12);
T('-0.0', '-0.0006', 1);
T('-445677508.00', '-445677508', 2);
T('0.0002', '0.00015099822561012723', 4);
T('-2992505698074499692367794831646886.0000000000000000', '-2992505698074499692367794831646886', 16);
T('5297873.59', '5297873.5869265978056497873793730268', 2);
T('72978439324039191443182.00000000000', '72978439324039191443182', 11);
T('0.66028387', '0.660283869505570207917431271006277981914716620876', 8);
T('-232008389442485.0', '-232008389442485', 1);
T('-2.371568', '-2.37156855939356279513952542004820909', 6);
T('-0.36285', '-0.3628526972092455731139', 5);
T('-8119.0', '-8119', 1);
T('171846434549810597775.8595264010', '171846434549810597775.859526401', 10);
T('-765674124885597.6363120', '-765674124885597.636312053095690367', 7);
T('2682390283.000', '2682390283', 3);
T('7799670515191143398434802.0000000000', '7799670515191143398434802', 10);
T('731916154123696.1935', '731916154123696.193488323779184681349292529227446', 4);
T('-793941153937799250384382615553258074.00000', '-793941153937799250384382615553258074', 5);
T('651002.00', '651002', 2);
T('-61317874871.00', '-61317874871', 2);
T('8673.00', '8673', 2);
T('-14490519736189597435728386282.030655', '-14490519736189597435728386282.0306558561264348956674', 6);
T('0.001', '0.00000000000002', 3);
T('0.000009', '0.000008920984342', 6);
T('0.0000920957086395973679873', '0.000092095708639597367987279557138375172816422475', 25);
T('28125849913667924088615.25407023317734', '28125849913667924088615.2540702331773399078402875044891', 14);
T('87.55538597', '87.55538596435839691343147', 8);
T('939705902083425775202905619379.0000000', '939705902083425775202905619379', 7);
T('7303936681469130614.8345000', '7303936681469130614.8345', 7);
T('-5831852886782.68010000', '-5831852886782.6801', 8);
T('-0.0000000', '-0.0000000213769530812', 7);
T('3939846383149740457.10095420654', '3939846383149740457.1009542065397674933246710194598175764', 11);
T('590849835.0000', '590849835', 4);
T('-8275957863.1479060805971940', '-8275957863.14790608059719409463511261267671122', 16);
T('88601607840.97', '88601607840.97', 2);
T('-87.0', '-87', 1);
T('-0.00000000000059590334996', '-0.0000000000005959033499645216206226546715679135941845273', 23);
T('-20156162002512717731841.00', '-20156162002512717731841', 2);
T('-7651429939400798.00000000', '-7651429939400798', 8);
T('4054038.8271920833198564466870907131', '4054038.8271920833198564466870907130849589640579687753824767', 28);
T('0.000001', '0.0000000003', 6);
T('275300507469257287911954639302505046260690.99000000', '275300507469257287911954639302505046260690.99', 8);
T('642144861480907968070.771743458405005477', '642144861480907968070.77174345840500547656346', 18);
T('-889957451436631506823037014.12137026759445866404763', '-889957451436631506823037014.1213702675944586640476325', 23);
T('-0.06219606', '-0.062196067085235955835989272145756234722461994836174091995', 8);
T('-74213.0', '-74213', 1);
T('-1874944878399124299917948535549036295737418419.000', '-1874944878399124299917948535549036295737418419', 3);
T('83048495.1430455759922', '83048495.1430455759921014663361993386532235', 13);
T('-755506912.624491023612801925849', '-755506912.6244910236128019258495078668411577879440686', 21);
T('5321125710271045378833902102391466551386841083.00000000000', '5321125710271045378833902102391466551386841083', 11);
T('0.000004284427957821426529823151', '0.0000042844279578214265298231502546967595510818572110299927', 30);
T('472565886204.00000', '472565886204', 5);
T('31931010708026796882.0000000', '31931010708026796882', 7);
T('-4082183405971.00', '-4082183405971', 2);
T('43182719822263089032.0', '43182719822263089032', 1);
T('-74632497435577935327787910318876432.000000', '-74632497435577935327787910318876432', 6);
T('24236715602376164671.99119879565302925270845390802', '24236715602376164671.99119879565302925270845390801276995046', 29);
T('0.0002148', '0.00021473151048663639093342995904027', 7);
T('11552045377675783444804198150417717022744929.278', '11552045377675783444804198150417717022744929.2775103900527', 3);
T('0.0000007575', '0.000000757403681490224', 10);
T('-855.71', '-855.7117714955299728683318516625249', 2);
T('40834479174168915057442292427179095154620364684.0000000000000000000', '40834479174168915057442292427179095154620364684', 19);
T('270321444.000', '270321444', 3);
T('-30995028620287.03', '-30995028620287.032123746540311643282', 2);
T('-0.0', '-0.00009', 1);
T('-602729508268591597438320913.60658950848712687', '-602729508268591597438320913.60658950848712687918', 17);
T('-548567216043758894618461964890.694772532380790460115', '-548567216043758894618461964890.6947725323807904601157', 21);
T('82.0', '82', 1);
T('-55514405531090.06405191', '-55514405531090.06405191938240530830698', 8);
T('748298620904632711442812.4683', '748298620904632711442812.46822', 4);
T('682294636690140.7964265', '682294636690140.7964264385841075', 7);
T('-0.000000000', '-0.00000000000000000291', 9);
T('-6848806396346459932451282602470846060855488728.540000000000', '-6848806396346459932451282602470846060855488728.54', 12);
T('5276393.209', '5276393.2086599096026388085281', 3);
T('0.4', '0.4', 1);
T('8375483913668.000', '8375483913668', 3);
T('34817563688185836561554596.15000', '34817563688185836561554596.15', 5);
T('4367672.009', '4367672.00813881', 3);
T('-5013698209882323019634267579122589538355461264705883707.000000000000000000000000', '-5013698209882323019634267579122589538355461264705883707', 24);
T('0.001', '0.000000000000000745707393395393623687701759', 3);
T('76676945635878017064402467.00000', '76676945635878017064402467', 5);
T('-382435678755006.0000000', '-382435678755006', 7);
T('0.5', '0.5', 1);
T('-3063.0', '-3063', 1);
T('-3.0', '-3', 1);
Decimal.rounding = 3;
T('0.0000', '0.00000000000584', 4);
T('-79055907138737329232.165677999092552368', '-79055907138737329232.1656779990925523674', 18);
T('47206303530045536472421888342339.00000000', '47206303530045536472421888342339', 8);
T('3974.0', '3974', 1);
T('1296297430771.39', '1296297430771.391670729445980444292', 2);
T('0.000016', '0.00001686928031', 6);
T('-0.00001', '-0.0000000000008', 5);
T('4883938724383.000', '4883938724383', 3);
T('-5.4115622307', '-5.411562230628539329345282639155988044655000352687981880842', 10);
T('-0.01', '-0.0000000000155280115429218804426906540524', 2);
T('-2730930776035874709906.00000', '-2730930776035874709906', 5);
T('8419336352549424092369623.00000', '8419336352549424092369623', 5);
T('52897.4', '52897.4', 1);
T('-783171007682720320053252521365465473997085.0', '-783171007682720320053252521365465473997085', 1);
T('0.8', '0.8', 1);
T('-0.00000000085280', '-0.000000000852796916216780032747621063045628213284', 14);
T('809486781065644418.9', '809486781065644418.939', 1);
T('-9.0', '-9', 1);
T('2399395.00', '2399395', 2);
T('-243707862514768528758611224374.0000000000000', '-243707862514768528758611224374', 13);
T('-87906.00', '-87906', 2);
T('-36206954271055061276640398631031143034683624940748.9970000000000000000000', '-36206954271055061276640398631031143034683624940748.997', 22);
T('0.00', '0.0000000000565885579252765288683939564608114096713', 2);
T('-8391656174313988740342135972218668561645437.0', '-8391656174313988740342135972218668561645437', 1);
T('14571897947566372593360811.00000000000', '14571897947566372593360811', 11);
T('-473156035623.70', '-473156035623.690373046925674588826', 2);
T('2798706581453003.177239111', '2798706581453003.17723911167031', 9);
T('607781292230803273523112111.091726721140', '607781292230803273523112111.09172672114', 12);
T('-0.3', '-0.3', 1);
T('3008522535782692059736852844809784198247000184.0', '3008522535782692059736852844809784198247000184', 1);
T('14227.00', '14227', 2);
T('7841760307718014116576857993957.0000', '7841760307718014116576857993957', 4);
T('-0.00001', '-0.00000000000002596', 5);
T('5247199732982111073.000000000', '5247199732982111073', 9);
T('-12.0', '-12', 1);
T('0.000', '0.00005', 3);
T('-1383703062.0000', '-1383703062', 4);
T('0.0051019245305169', '0.00510192453051698060366202631871161193', 16);
T('-45565092550117861497905653558246322559799.0', '-45565092550117861497905653558246322559799', 1);
T('-0.284', '-0.284', 3);
T('-8962.00', '-8962', 2);
T('49335989571.2173023', '49335989571.217302304037', 7);
T('-9.0', '-9', 1);
T('-26112007394118580909080488694986628.00000000', '-26112007394118580909080488694986628', 8);
T('-0.0000001', '-0.0000000000004', 7);
T('0.0000002341', '0.0000002341509570562590239', 10);
T('14533914.08264220677', '14533914.0826422067727128413377656933218789408', 11);
T('42170538403476604541324854403569069340562310909332579546.37600000000000000', '42170538403476604541324854403569069340562310909332579546.376', 17);
T('-4.0', '-4', 1);
T('-67678179481337765.66210000', '-67678179481337765.6621', 8);
T('257419830944838.0000000', '257419830944838', 7);
T('-324773537769898472911.277781339985241561477923', '-324773537769898472911.2777813399852415614779220499583265', 24);
T('-528485032702878171887338835619232399832.00000000000', '-528485032702878171887338835619232399832', 11);
T('-710189041499049633659311234.000', '-710189041499049633659311234', 3);
T('643084101102033.063753808679', '643084101102033.0637538086790219378107', 12);
T('825884431.000', '825884431', 3);
T('-543871854882673630364514781674939771106.38551140781759', '-543871854882673630364514781674939771106.385511407817581261', 14);
T('-798526.00', '-798526', 2);
T('297795786834144418744.0000', '297795786834144418744', 4);
T('0.00000', '0.0000000000016163586667107', 5);
T('0.0000000000', '0.00000000000007848361792826553641', 10);
T('-5.007308350876984680', '-5.007308350876984679530067590680338870257350613322626', 18);
T('-427.00', '-427', 2);
T('-515119.313431282058', '-515119.31343128205773478896638', 12);
T('-8.49', '-8.4804', 2);
T('2477.751471782877', '2477.751471782877726695914405313733773564569949039123496962', 12);
T('0.00000000', '0.000000000000000065892', 8);
T('7138.0', '7138.013', 1);
T('0.0000000000', '0.0000000000000004333337165355354317801382736832134', 10);
T('8658428891542726719576602828199407563445702034.00000000', '8658428891542726719576602828199407563445702034', 8);
T('0.3', '0.3', 1);
T('-56313246520419173728621429021902681217573545.50000000000000', '-56313246520419173728621429021902681217573545.5', 14);
T('-23.039752413764', '-23.03975241376398747770561587976', 12);
T('-19445726051618345902355920469.00000', '-19445726051618345902355920469', 5);
T('-0.1', '-0.040277481632393097542018589044285854989493888417936', 1);
T('-0.000000000001', '-0.000000000000000000288835285344547651291408208502608124', 12);
T('79030772762.92000', '79030772762.92', 5);
T('5700622112017639331911483394352164374087.00000000000000000', '5700622112017639331911483394352164374087', 17);
T('-90770899291595539313072309812380381240470505.000000000000', '-90770899291595539313072309812380381240470505', 12);
T('-41647595.5561', '-41647595.55603', 4);
T('222575273379018396575101654735581517852852286433973.4686000000000000', '222575273379018396575101654735581517852852286433973.4686', 16);
T('56275673822913529965328835.15006015303', '56275673822913529965328835.150060153034', 11);
T('-88903.69011778', '-88903.690117778621375708068659403797174645788', 8);
T('-115251.00', '-115251', 2);
T('-0.00001', '-0.0000079321934570619592061', 5);
T('9222185695996633788650562039735238902841130971959266.000000', '9222185695996633788650562039735238902841130971959266', 6);
T('-327381709334.18527398150845', '-327381709334.185273981508440153589241628279291', 14);
T('1.2070939', '1.207093941595', 7);
T('5631244336598787152545539244.614', '5631244336598787152545539244.614953046957418773850871532', 3);
T('7.585318', '7.58531893327', 6);
T('509177.0', '509177', 1);
T('-5922122769788.000000', '-5922122769788', 6);
T('204517097255774161136650103483266240865357614.000000000000', '204517097255774161136650103483266240865357614', 12);
T('-0.008817568208764', '-0.00881756820876361559226942398227', 15);
T('80111694.00', '80111694', 2);
T('-453349.000', '-453349', 3);
T('85122981744559018.00000000', '85122981744559018', 8);
T('0.027007', '0.027007420598954545854969297272268125483242465539', 6);
T('-2699105308.4', '-2699105308.3051738674733271523825325743', 1);
T('-0.000000000001', '-0.00000000000000883409579454508262166084385', 12);
Decimal.rounding = 4;
Decimal.toExpNeg = Decimal.toExpPos = 0;
T('733744593401073823825766410831877679446.0000000000000000000', '733744593401073823825766410831877679446', 19);
T('-64.6849459', '-64.6849458687691227978', 7);
T('-0.000000', '-0.00000000009', 6);
T('-62537287527837589298857228059657673223234916.95923265430000000', '-62537287527837589298857228059657673223234916.9592326543', 17);
T('3393668096256773847245721315080265089731.000000', '3393668096256773847245721315080265089731', 6);
T('0.0', '0.0000000000000056674956638008432348702401392', 1);
T('72516372734.6', '72516372734.6447', 1);
T('-418.28', '-418.2800731793741351', 2);
T('0.00', '0.001', 2);
T('8366217346845756726.00000000', '8366217346845756726', 8);
T('-0.000000', '-0.0000000000000092034548636370987112234384736726', 6);
T('0.35', '0.35474830751442135112334772517193392', 2);
T('64703289793894.5830', '64703289793894.58296866', 4);
T('-0.000000000000000036', '-0.000000000000000036461242408590182363418943891', 18);
T('5494508405056449117588.631948', '5494508405056449117588.631948458033233759999', 6);
T('-0.0', '-0.00393971618499838726739122333520030506235698', 1);
T('375581290738585826632.00000000', '375581290738585826632', 8);
T('254.96635275802300887', '254.96635275802300886544776010389418575738792480979736', 17);
T('21492347.69467571391498624445', '21492347.6946757139149862444482880595559468', 20);
T('313576441324233.0000000', '313576441324233', 7);
T('-8617.57089319166', '-8617.57089319166205141433276411273552139017', 11);
T('0.00000000014928376395', '0.00000000014928376394768755724252424022348932365406839448223', 20);
T('2.497624215622999568569', '2.49762421562299956856937732557160934323114203547832675', 21);
T('-288056106511636272271570523193926801058294502.000', '-288056106511636272271570523193926801058294502', 3);
T('-4798171567575228724.140', '-4798171567575228724.1400144613946894', 3);
T('8.49008', '8.49007655210654', 5);
T('-56633605.000', '-56633605', 3);
T('-4147381274685866.81753', '-4147381274685866.8175313', 5);
T('-534460490015293367127173277346694900936058.0000', '-534460490015293367127173277346694900936058', 4);
T('182707431911537249021116759327712693311898345504618668.43327000000000000000000', '182707431911537249021116759327712693311898345504618668.43327', 23);
T('210005324615278.4586839690045963321032', '210005324615278.458683969004596332103244549279', 22);
T('779837001772884165637922377221951347134695.644834', '779837001772884165637922377221951347134695.6448338', 6);
T('-0.000001', '-0.00000064188301390033596845335767993853284632527964514979079', 6);
T('13.0', '13', 1);
T('0.0000001269', '0.0000001269060795648365813491128357427111184222', 10);
T('18446632248354.00', '18446632248354', 2);
T('-1229249.79', '-1229249.7897249259', 2);
T('49082.0', '49082', 1);
T('-61.0', '-61', 1);
T('-893.0', '-893', 1);
T('5002282278.56974877690066484', '5002282278.569748776900664839184116538222902', 17);
T('41372.00', '41372', 2);
T('-4732022445962399687294885123498809.7625585825095', '-4732022445962399687294885123498809.7625585825095', 13);
T('-55484242.036895641', '-55484242.036895641', 9);
T('-41427133134.52583323427907663268339', '-41427133134.525833234279076632683393992706825', 23);
T('0.0', '0.00004300614085218825243480119971669264977421', 1);
T('-472025754597316278339412186866.7010659789', '-472025754597316278339412186866.701065978877597089729906019843', 10);
T('2.50869', '2.50869082352024406', 5);
T('-87154.000', '-87154', 3);
T('-0.0000000000071859183950976', '-0.0000000000071859183950975905578927950225183102336392', 25);
T('-10827138340266.44', '-10827138340266.44057558913', 2);
T('0.0000702', '0.0000701871613973530533582225769977', 7);
T('-4878237667448133503521416059497.376626000000', '-4878237667448133503521416059497.376626', 12);
T('8984687671347686046766702.01181862480', '8984687671347686046766702.0118186248', 11);
T('0.00000', '0.00000000076447711430809658905538', 5);
T('-184825.87743766370213607', '-184825.87743766370213606656669525883145102', 17);
T('-147007021210433212254058959161555.747000000000', '-147007021210433212254058959161555.747', 12);
T('641778680063060681850989295.4', '641778680063060681850989295.44394602812788754296411563', 1);
T('0.00', '0.000000000000000261099857', 2);
T('-69168585539.981086198312', '-69168585539.9810861983124008597329', 12);
T('-2441638.37765', '-2441638.37765405543', 5);
T('0.00', '0.00000005', 2);
T('-17865480328519059654833853633.668588983', '-17865480328519059654833853633.6685889825124607147114', 9);
T('5552449880075592383242782.42', '5552449880075592383242782.42273775283', 2);
T('-3.47445833771303714', '-3.4744583377130371421642122331960174443', 17);
T('-5543608156416096833838191852961329666675.00000000000000', '-5543608156416096833838191852961329666675', 14);
T('-6836042.000', '-6836042', 3);
T('0.00000912', '0.0000091177854552839774258855562071866', 8);
T('55986.00', '55986', 2);
T('0.0', '0.02', 1);
T('-0.0000', '-0.00000001', 4);
T('889659799897707059043156.0', '889659799897707059043156', 1);
T('0.000000', '0.00000000000000003', 6);
T('0.00000000000008179581450', '0.00000000000008179581449515246320423213581212698189913041', 23);
T('-981.4210', '-981.421', 4);
T('-3455913777070673553360330519337.00000000000000', '-3455913777070673553360330519337', 14);
T('0.00000000081700', '0.00000000081700228716634187537384600725', 14);
T('4822037.000', '4822037', 3);
T('-0.0000000064360437778', '-0.0000000064360437777672775206464043731', 19);
T('5290480.66496927901282867', '5290480.66496927901282867027658062129', 17);
T('-408612952552043095.000', '-408612952552043095', 3);
T('-513.0', '-513', 1);
T('-14964.000', '-14964', 3);
T('-19903753117563849440806175537514112075543387952.00000', '-19903753117563849440806175537514112075543387952', 5);
T('249443.0175143', '249443.0175142727704683419749', 7);
T('-74343756463586673907431837633.24', '-74343756463586673907431837633.23687651', 2);
T('-27.679', '-27.6785', 3);
T('-64259172643579684888737979.618833554815821332098', '-64259172643579684888737979.618833554815821332097716331', 21);
T('17230955766539391.00000000', '17230955766539391', 8);
T('582751886981240.177', '582751886981240.177383845390864465', 3);
T('191002031658424.51', '191002031658424.51247456500221220552332700327795408', 2);
T('-479015175846069070145.000000000', '-479015175846069070145', 9);
T('135507.00', '135507', 2);
T('-1819380757840.7931545894175', '-1819380757840.79315458941752033110677996441946221', 13);
T('56729395152942371.34113220', '56729395152942371.3411322', 8);
T('0.00000', '0.000000009', 5);
T('231631.31091406798', '231631.310914067979514934639396351953448', 11);
T('0.00', '0.00044659', 2);
T('-637697600918508531049573689760309.5119477000000000', '-637697600918508531049573689760309.5119477', 16);
T('-6.19247283', '-6.19247282501186063445037314', 8);
Decimal.rounding = 5;
T('0.00', '0.00000000000000070362', 2);
T('682377946933004839.0000000', '682377946933004839', 7);
T('0.000000000', '0.00000000000000301722508588270616971784651380892069087869575', 9);
T('-356330174906.7', '-356330174906.737986270704', 1);
T('771875969530483104163034745359742192923504.000000000000000', '771875969530483104163034745359742192923504', 15);
T('-85.57612133364', '-85.576121333642541652128540737082', 11);
T('-796870619982006783.00000000', '-796870619982006783', 8);
T('985819.0', '985819', 1);
T('0.000000', '0.00000000000000000007093034243958', 6);
T('-0.0000', '-0.0000000006400178083107075310177579449', 4);
T('-105570971372984.0', '-105570971372984', 1);
T('4387745564661852845308.94229815083918', '4387745564661852845308.9422981508391799473309882', 14);
T('-3978043797116373.2', '-3978043797116373.159631', 1);
T('5.8961281424853232622595', '5.8961281424853232622594846548715356650909645537495738043051', 22);
T('-0.0000081539970551874384495', '-0.000008153997055187438449482684680130340977472796176926', 25);
T('-65.0', '-65', 1);
T('-24012940205869.000', '-24012940205869', 3);
T('0.000000', '0.000000000000000066985234999507396', 6);
T('2935194283452.35738951157832206907124', '2935194283452.357389511578322069071242729133894', 23);
T('542060.7771', '542060.77713479586821060591807145320317', 4);
T('890815036528241639534803534813.592588608837168425865025', '890815036528241639534803534813.59258860883716842586502472472', 24);
T('685877749980391051.17', '685877749980391051.1715', 2);
T('47820177163147405231185068730213.894293', '47820177163147405231185068730213.89429254869826585947429821', 6);
T('1536364305.00', '1536364305', 2);
T('-85825125.5810188', '-85825125.5810188298', 7);
T('-4983288214158634188.4572989', '-4983288214158634188.4572988600705359104', 7);
T('0.0000000000', '0.0000000000000000017929073', 10);
T('-1684136337600384671.00000000', '-1684136337600384671', 8);
T('567733137127609543.000000', '567733137127609543', 6);
T('607675679770387.000', '607675679770387', 3);
T('43727409067319.0', '43727409067319', 1);
T('-77274559773372606.00', '-77274559773372606', 2);
T('-28855643486070486857836.00000', '-28855643486070486857836', 5);
T('-915356570870.00', '-915356570870.00041832252262829437239', 2);
T('0.0', '0.00000000000004843552301428650828', 1);
T('-33295218517967296146307127.00000', '-33295218517967296146307127', 5);
T('279738383433666359352.0000000', '279738383433666359352', 7);
T('-30674028853766084158066396602.97', '-30674028853766084158066396602.97484778446', 2);
T('-0.323', '-0.32275988418995752362737918723', 3);
T('6129049976563004.000', '6129049976563004', 3);
T('-6.0', '-6', 1);
T('-66243945975700325606152500782471023774538548318.0000000000000000000000', '-66243945975700325606152500782471023774538548318', 22);
T('-138286369547644243875.0000000', '-138286369547644243875', 7);
T('5099535.00', '5099535', 2);
T('675.0', '675', 1);
T('0.0002717', '0.0002716602757', 7);
T('4649780225385110311483722.0000', '4649780225385110311483722', 4);
T('-22143045418555913412107884765016867198665971.10000000000000000000000', '-22143045418555913412107884765016867198665971.1', 23);
T('-71055639496050521326328010675.00000000', '-71055639496050521326328010675', 8);
T('0.00000000', '0.000000000077562570903960521', 8);
T('-0.000000021017500', '-0.000000021017500243085615932617', 15);
T('0.000000000000000024697', '0.00000000000000002469732084636233381651368431', 21);
T('760509941556107507425043304787283113918044183872.000000000000000000000000', '760509941556107507425043304787283113918044183872', 24);
T('-553489807182304143570302092614431846999972192129146.0608020000000000', '-553489807182304143570302092614431846999972192129146.060802', 16);
T('4616442457861540834390983504493684542810.99300000000', '4616442457861540834390983504493684542810.993', 11);
T('5836715007847225.0000', '5836715007847225', 4);
T('1056180.997', '1056180.99676966515555844225990248546', 3);
Decimal.rounding = 6;
T('-6614662975368684488885953285955838893900074215956.00', '-6614662975368684488885953285955838893900074215956', 2);
T('8642393776898.000', '8642393776898', 3);
T('3612207878528.1106344698085142865', '3612207878528.1106344698085142865438924419', 19);
T('977910386.93', '977910386.9343537', 2);
T('-8937937492688941768401276851642629965923372.0', '-8937937492688941768401276851642629965923372', 1);
T('-8327876772303865517454752161.4376112752921904774', '-8327876772303865517454752161.43761127529219047742910886', 19);
T('-27707.00', '-27707', 2);
T('-7287595765894242586375.92700435484', '-7287595765894242586375.927004354837723619581861634319', 11);
T('-0.00000', '-0.000000000000023670858459165486137218740358207859', 5);
T('574676836802209077.64156', '574676836802209077.641563875647945277493356873895', 5);
T('-3041038455237222898218053653661.87952947815', '-3041038455237222898218053653661.87952947815', 11);
T('-628244132307.000', '-628244132307', 3);
T('316566935167341670725238.000', '316566935167341670725238', 3);
T('-77953301569468294124105528.0', '-77953301569468294124105528', 1);
T('0.0046', '0.00460227833968584', 4);
T('4323265763616518980379929221104.0', '4323265763616518980379929221104', 1);
T('1674500565014237781637959673471730398.1120033', '1674500565014237781637959673471730398.1120032995511774', 7);
T('872559441430499650732600166.00000', '872559441430499650732600166', 5);
T('-87858304.0000', '-87858304', 4);
T('-4158788.000', '-4158788', 3);
T('3983930437416823631395.9093', '3983930437416823631395.90934402583657', 4);
T('-14.5531937', '-14.5531936852106573016020290135814233645752955297443336', 7);
T('0.00000000002201', '0.00000000002200503795474854372849141363413146996972', 14);
T('0.0000000000000', '0.00000000000000000894955653982033503846831364474746320232', 13);
T('61564779.00', '61564779', 2);
T('-7.0', '-7', 1);
T('-0.000000000000028455976228', '-0.00000000000002845597622815028653703372125435938812845106', 24);
T('728982423193598397582409707715766595902844.0000000', '728982423193598397582409707715766595902844', 7);
T('14538075860529.2697937480', '14538075860529.269793748', 10);
T('0.000', '0.00000000000000000007021566096', 3);
T('-5136066535080.86830591678842264063462546263', '-5136066535080.86830591678842264063462546262988980471309228558', 29);
T('-3026751112367460839746524832112404665.000000000000000', '-3026751112367460839746524832112404665', 15);
T('-6694275398250090562.00', '-6694275398250090562', 2);
T('-50643997750937725516578696636829589244661366402743.000000000', '-50643997750937725516578696636829589244661366402743', 9);
T('2197374413.79714', '2197374413.7971355344377249354470626290268959873', 5);
T('0.0', '0.005020192658713355', 1);
T('-254956356194995318790657817617390203938.180000000', '-254956356194995318790657817617390203938.18', 9);
T('0.000', '0.000000000090726', 3);
T('-644164371869124953225087.14694842524000', '-644164371869124953225087.14694842524', 14);
T('-0.00000157175189018', '-0.0000015717518901763532026126676445445', 17);
T('883545726717772254369.08868386', '883545726717772254369.0886838593581297250598', 8);
T('-8890332541208932844712909996569216422867971798.000000000000000', '-8890332541208932844712909996569216422867971798', 15);
T('-0.000000000000', '-0.000000000000000019481454049470983547912235', 12);
T('740944636504591431790473918513.0000', '740944636504591431790473918513', 4);
T('-5679793084762496855854965276883350654245022549131067599715.800000', '-5679793084762496855854965276883350654245022549131067599715.8', 6);
T('51991398836962962151.4032644162159', '51991398836962962151.4032644162159099221', 13);
T('66958838053011544557752193.00000', '66958838053011544557752193', 5);
T('-670579843.2118208913941229137016', '-670579843.21182089139412291370155773837719883548843299002', 22);
T('-153613650899356538114572207.94248678450152160836', '-153613650899356538114572207.9424867845015216083607156497', 20);
T('-737846251706379871052.2861168', '-737846251706379871052.2861168267591416289887782899835', 7);
T('-65908055.0', '-65908055', 1);
T('3237039120306392313.80906374769', '3237039120306392313.80906374769434099092272015749692609', 11);
T('83640693821.00', '83640693821', 2);
T('-921776606869800052510163986912.6037663480501', '-921776606869800052510163986912.603766348050146856757561176111', 13);
T('6303883932563373.0', '6303883932563373', 1);
T('6373283811.5454531478622699', '6373283811.5454531478622698611321575271', 16);
T('6097017834070937658.000000000', '6097017834070937658', 9);
T('24524.17471335606758880', '24524.1747133560675887965670636565353165', 17);
T('82671976754257522256837287487178420454352.00000', '82671976754257522256837287487178420454352', 5);
T('-4134121508878287.32516638661', '-4134121508878287.32516638661094488', 11);
T('706494960751225536339363333.135485602348', '706494960751225536339363333.13548560234793', 12);
T('0.0000000', '0.00000000000000000005260494554647051', 7);
T('-2172823046.605754378126140867773679', '-2172823046.60575437812614086777367899344184998336', 24);
T('7182216670065915047.3', '7182216670065915047.265', 1);
T('-0.0001', '-0.00011347856', 4);
T('-1620.4750509689199484099', '-1620.475050968919948409915128915793493745056891952647', 19);
T('-2107001274569567393.00000000', '-2107001274569567393', 8);
T('0.00', '0.0000000004', 2);
T('-0.000', '-0.00000000000000000009622600511499459674774308', 3);
T('-1749656594942211427.14080828808148814976439530', '-1749656594942211427.1408082880814881497643953004161', 26);
T('-2483383057229762.00000000', '-2483383057229762', 8);
T('0.000000', '0.0000005', 6);
T('0.5', '0.5', u);
T('-0', '-0.5', 0);
T('10.5', '10.5', u);
T('0.05', '0.05', u);
T('0.4', '0.4', u);
T('0.6', '0.6', u);
T('1.5', '1.5', u);
T('-1.5', '-1.5', u);
Decimal.rounding = 4;
T('-535564000.00', '-535564000', 2);
T('-80000000.000', '-80000000', 3);
T('-240.0', '-240', 1);
T('-7520000000.0', '-7520000000', 1);
T('306550.000', '306550', 3);
T('800000000.0', '800000000', 1);
T('-454000000.00000', '-454000000', 5);
T('60.0', '60', 1);
T('-4700000.000', '-4700000', 3);
T('25000.00', '25000', 2);
T('6847.0', '6847', 1);
T('780.0', '780', 1);
T('-50.0', '-50', 1);
T('700.0', '700', 1);
T('412598000.0000', '412598000', 4);
T('-84581600.0', '-84581600', 1);
T('5590000.00', '5590000', 2);
T('-66000.0', '-66000', 1);
T('600.0', '600', 1);
T('-513335000.000', '-513335000', 3);
T('-40.0', '-40', 1);
T('3401.00', '3401', 2);
T('8600.00', '8600', 2);
T('-5410000.0', '-5410000', 1);
T('5527170.0', '5527170', 1);
T('-3710700.0', '-3710700', 1);
T('-13230000.0', '-13230000', 1);
T('-52536202527.13891931933498708496518913773517016037224', '-5.253620252713891931933498708496518913773517016037224E10', u);
T('0.0000000000000008761383898703999300297605784533730922', '8.761383898703999300297605784533730922E-16', u);
T('-0.0000000000000000000000000000000000004', '-4E-37', u);
T('2832044194940.47654015529986948208', '2.83204419494047654015529986948208E12', u);
T('0.00000000000000000000000064668155275864837', '6.4668155275864837E-25', u);
T('4.34128088694', '4.34128088694E0', u);
T('-851957.6572615611436542', '-8.519576572615611436542E5', u);
T('-89097468286.2561077879598798580253771544265682053', '-8.90974682862561077879598798580253771544265682053E10', u);
T('-0.000000000000000000000000000000000000000000000030409767', '-3.0409767E-47', u);
T('0.000000000000000000004295112484112357722747956581254', '4.295112484112357722747956581254E-21', u);
T('-839203207475651.6542808578', '-8.392032074756516542808578E14', u);
T('-0.00000000000000000078216', '-7.8216E-19', u);
T('-1782290274935701247734.21262413032385', '-1.78229027493570124773421262413032385E21', u);
T('31669451104144801337076433457.18511076', '3.166945110414480133707643345718511076E28', u);
T('0.000000000000000000000000000000000000472351852761', '4.72351852761E-37', u);
T('-50155220217523568901083623.78842580174913602672593731', '-5.015522021752356890108362378842580174913602672593731E25', u);
T('-291.37', '-2.9137E2', u);
T('-52474611936456205886027195352961212383.2279441143', '-5.24746119364562058860271953529612123832279441143E37', u);
T('-326.9376463292543', '-3.269376463292543E2', u);
T('0.00000000000044', '4.4E-13', u);
T('0.000000087792449', '8.7792449E-8', u);
T('497835793870987132484033.938845920610565887398960253648', '4.97835793870987132484033938845920610565887398960253648E23', u);
T('-33960439442302770058.74863962', '-3.396043944230277005874863962E19', u);
T('0.00000000000000000000000000000000000000020694696587293782', '2.0694696587293782E-40', u);
T('-0.8904319539', '-8.904319539E-1', u);
T('-86429552798.4', '-8.64295527984E10', u);
T('0.000000000000000000000000000003', '3E-30', u);
T('108595082003321932.8178949736608320767', '1.085950820033219328178949736608320767E17', u);
T('611126.73674534242367484008848341500334', '6.1112673674534242367484008848341500334E5', u);
T('4311.0597590893026685282662406924', '4.3110597590893026685282662406924E3', u);
T('0.000000000000000000000000000000000000000073309221', '7.3309221E-41', u);
T('-6864844854510.144926572184', '-6.864844854510144926572184E12', u);
T('-0.038', '-3.8E-2', u);
T('0.00000000000000794946369399591', '7.94946369399591E-15', u);
T('56020.6861005', '5.60206861005E4', u);
T('-0.00000000000896738912765063552834206018847', '-8.96738912765063552834206018847E-12', u);
T('0.00000000006755925523685348357189087468', '6.755925523685348357189087468E-11', u);
T('0.000000000000000000000000000000000072', '7.2E-35', u);
T('0.00000000000000000000000000000000000000000000000000006128', '6.128E-53', u);
T('-27010668344373144545282.061712584328482438690936897', '-2.7010668344373144545282061712584328482438690936897E22', u);
T('-0.000066720042169954586184178645', '-6.6720042169954586184178645E-5', u);
T('-0.00000000000000000000000000000000000003516', '-3.516E-38', u);
T('0.007458', '7.458E-3', u);
T('0.0670339647456587432138292225', '6.70339647456587432138292225E-2', u);
T('-49.59', '-4.959E1', u);
T('5.94', '5.94E0', u);
T('9185110977234279483303912931774514.67', '9.18511097723427948330391293177451467E33', u);
T('-127.11408592808048991219551891022999276273412536879573107525', '-1.2711408592808048991219551891022999276273412536879573107525E2', u);
T('0.00000013', '1.3E-7', u);
T('-0.00000000000000000000000000000000156', '-1.56E-33', u);
T('22', '2.2E1', u);
T('6644378197598065.943168375926', '6.644378197598065943168375926E15', u);
T('-0.00000000000000465403429687260725429254606083299909', '-4.65403429687260725429254606083299909E-15', u);
T('0.00000653586429286761580785105', '6.53586429286761580785105E-6', u);
T('-779132060.497697052423647343175672388834', '-7.79132060497697052423647343175672388834E8', u);
T('0.0000000000000000085996828590423169591835759758087548466494', '8.5996828590423169591835759758087548466494E-18', u);
T('-0.000000000000256285784', '-2.56285784E-13', u);
T('0.0000000000000017947', '1.7947E-15', u);
T('0.000000000060671249811126224597672813512109', '6.0671249811126224597672813512109E-11', u);
T('-800627106331596202.032250866963247864855868', '-8.00627106331596202032250866963247864855868E17', u);
T('-98402249.9358755191632299360339880127190049662097654206', '-9.84022499358755191632299360339880127190049662097654206E7', u);
T('-0.000000000000000000000014149882794818263963', '-1.4149882794818263963E-23', u);
T('-7060324311175919534626797409919718746390.10555', '-7.06032431117591953462679740991971874639010555E39', u);
T('821393911651350506858922608971571483.39201', '8.2139391165135050685892260897157148339201E35', u);
T('-721517626817.43734235970422357278172', '-7.2151762681743734235970422357278172E11', u);
T('-5124.504476910146380807047771', '-5.124504476910146380807047771E3', u);
T('0.0000000005697544867401308959870722352682904', '5.697544867401308959870722352682904E-10', u);
T('-0.00012871208613777', '-1.2871208613777E-4', u);
T('8567233928771894245.8242651905951092028701228506224699', '8.5672339287718942458242651905951092028701228506224699E18', u);
T('-0.0000000094881461545668728', '-9.4881461545668728E-9', u);
T('6045245.020177069527457656633132622', '6.045245020177069527457656633132622E6', u);
T('-7210271571379007035869444.1417241308887367042323559687840525', '-7.2102715713790070358694441417241308887367042323559687840525E24', u);
T('-2620220239077.66', '-2.62022023907766E12', u);
T('-0.001916564704980402478', '-1.916564704980402478E-3', u);
T('5371.947750065160966666612070818997', '5.371947750065160966666612070818997E3', u);
T('0.00000077036439397954895237124076', '7.7036439397954895237124076E-7', u);
T('-0.000000000002280137669447351084609656999367909206747800792', '-2.280137669447351084609656999367909206747800792E-12', u);
T('635945056777163867933996244.44612913038', '6.3594505677716386793399624444612913038E26', u);
T('5', '5E0', u);
T('48309.56', '4.830956E4', u);
T('2138.45865823930129961216391905305999251296833471869532168', '2.13845865823930129961216391905305999251296833471869532168E3', u);
T('3706073870.96925990345144', '3.70607387096925990345144E9', u);
T('-798.62', '-7.9862E2', u);
T('-521968106907526.65373750732297', '-5.2196810690752665373750732297E14', u);
T('0.7224996555', '7.224996555E-1', u);
T('-0.00000000000059452644215310796452483703709', '-5.9452644215310796452483703709E-13', u);
T('350818063006798017016671125.0434068891113', '3.508180630067980170166711250434068891113E26', u);
T('7968708424180299716816047189442601.3735762244', '7.9687084241802997168160471894426013735762244E33', u);
T('-0.5355520816318664361284739093852209293628562271329701', '-5.355520816318664361284739093852209293628562271329701E-1', u);
T('-906.9275233025623299867798', '-9.069275233025623299867798E2', u);
T('0.00045587', '4.5587E-4', u);
T('0.000004', '4E-6', u);
T('5857276704537340524.1431417907437', '5.8572767045373405241431417907437E18', u);
T('-3843554476637626791.87474208180361', '-3.84355447663762679187474208180361E18', u);
T('-60535943484683045495384222.313768035329647860053456457477', '-6.0535943484683045495384222313768035329647860053456457477E25', u);
T('0.0000000000000004444869762788836674404079577885262473', '4.444869762788836674404079577885262473E-16', u);
T('-0.005874931444844844350595746989373586841269114316', '-5.874931444844844350595746989373586841269114316E-3', u);
T('0.09', '9E-2', u);
T('86280010336.8017418950328178', '8.62800103368017418950328178E10', u);
T('227901.6305936588696902705189877626178015851261755', '2.279016305936588696902705189877626178015851261755E5', u);
T('-0.00002923', '-2.923E-5', u);
T('451.1251729802129507', '4.511251729802129507E2', u);
T('-2586077212890917651232310958.88201646914374247083', '-2.58607721289091765123231095888201646914374247083E27', u);
T('-0.08', '-8E-2', u);
T('7.996020827302694833122463304879649129610781362', '7.996020827302694833122463304879649129610781362E0', u);
T('-0.00000000000000000000000007933204829049175909186498799838', '-7.933204829049175909186498799838E-26', u);
T('-0.0000000000001882498592930501880542338117957263473489255', '-1.882498592930501880542338117957263473489255E-13', u);
T('-1172052648945437104144.7753679481957698417677', '-1.1720526489454371041447753679481957698417677E21', u);
T('287937985683292603.441526238031', '2.87937985683292603441526238031E17', u);
T('-0.0000000000134355091714731837192225455005', '-1.34355091714731837192225455005E-11', u);
T('0.000000000000000000000000000026170541344981279884209612', '2.6170541344981279884209612E-29', u);
T('0.0041336403', '4.1336403E-3', u);
T('8955011.51436146124079765380599870608206410057', '8.95501151436146124079765380599870608206410057E6', u);
T('76343535604093', '7.6343535604093E13', u);
T('-579109804573982925.9', '-5.791098045739829259E17', u);
T('-16248730541202.41645330499728414237866592099124270393892244', '-1.624873054120241645330499728414237866592099124270393892244E13', u);
T('299078130777696473774921407.8921386301', '2.990781307776964737749214078921386301E26', u);
T('0.00000000000005008659860139108', '5.008659860139108E-14', u);
T('-277409247924.47', '-2.7740924792447E11', u);
T('0.00000000791545594251', '7.91545594251E-9', u);
T('191942230233.90984962570015373025283255557', '1.9194223023390984962570015373025283255557E11', u);
T('-0.0000000000078881545375574067765343323', '-7.8881545375574067765343323E-12', u);
T('-16802261058.36705', '-1.680226105836705E10', u);
T('0.0000000000000056017241520290338574647512149076190238', '5.6017241520290338574647512149076190238E-15', u);
T('-0.00000000003763962', '-3.763962E-11', u);
T('-0.000000000511737717217408462541465239', '-5.11737717217408462541465239E-10', u);
T('-0.000000000000000000000000000000000000000050368224614', '-5.0368224614E-41', u);
T('-0.018634708832478724474964945976701', '-1.8634708832478724474964945976701E-2', u);
T('6', '6E0', u);
T('-0.0000000000000000000745072058021090744018544591692', '-7.45072058021090744018544591692E-20', u);
T('724257535284104810664.4073', '7.242575352841048106644073E20', u);
T('12769.45510988046008277708155820993631711046', '1.276945510988046008277708155820993631711046E4', u);
T('631804730657678655927.137998704033924856965', '6.31804730657678655927137998704033924856965E20', u);
T('0.00000000000000000000000000000000798840870767288241343529097', '7.98840870767288241343529097E-33', u);
assert('-1478635511205065720411441088234634087783353090531769.175603436034231639743395165930222246484607747' +
'0460440794925193040344223656739741115687100160257607638', new Decimal('-1478635511205065720411441088234634087783' +
'353090531769.175603436034231639743395165930222246484607747046044079492519304034422365673974111568710016025760763' +
'83664408162624867351605015229777701990865326902932136430587015275752666401315258528531504569482239').toFixed(100));
Decimal.errors = true;
T('123.450', '12.345e1', new Decimal('3'));
T('123.45', '12.345e1', null);
T('123.45', '12.345e1', u);
T('123', '12.345e1', 0);
T('123', '12.345e1', -0);
assertException(function () {new Decimal(1.23).toFixed(NaN)}, "(1.23).toFixed(NaN)");
assertException(function () {new Decimal(1.23).toFixed('NaN')}, "(1.23).toFixed('NaN')");
assertException(function () {new Decimal(1.23).toFixed([])}, "(1.23).toFixed([])");
assertException(function () {new Decimal(1.23).toFixed({})}, "(1.23).toFixed({})");
assertException(function () {new Decimal(1.23).toFixed('')}, "(1.23).toFixed('')");
assertException(function () {new Decimal(1.23).toFixed(' ')}, "(1.23).toFixed(' ')");
assertException(function () {new Decimal(1.23).toFixed('hello')}, "(1.23).toFixed('hello')");
assertException(function () {new Decimal(1.23).toFixed('\t')}, "(1.23).toFixed('\t')");
assertException(function () {new Decimal(1.23).toFixed(new Date)}, "(1.23).toFixed(new Date)");
assertException(function () {new Decimal(1.23).toFixed(new RegExp)}, "(1.23).toFixed(new RegExp)");
assertException(function () {new Decimal(1.23).toFixed(2.01)}, "(1.23).toFixed(2.01)");
assertException(function () {new Decimal(1.23).toFixed(10.5)}, "(1.23).toFixed(10.5)");
assertException(function () {new Decimal(1.23).toFixed('1.1e1')}, "(1.23).toFixed('1.1e1')");
assertException(function () {new Decimal(1.23).toFixed(true)}, "(1.23).toFixed(true)");
assertException(function () {new Decimal(1.23).toFixed(false)}, "(1.23).toFixed(false)");
assertException(function () {new Decimal(1.23).toFixed(function (){})}, "(1.23).toFixed(function (){})");
assertException(function () {new Decimal('12.345e1').toFixed(1e9 + 1)}, ".toFixed(1e9 + 1)");
assertException(function () {new Decimal('12.345e1').toFixed('-0.01')}, ".toFixed('-0.01')");
assertException(function () {new Decimal('12.345e1').toFixed('-1e-1')}, ".toFixed('-1e-1')");
assertException(function () {new Decimal('12.345e1').toFixed(Infinity)}, ".toFixed(Infinity)");
assertException(function () {new Decimal('12.345e1').toFixed('-Infinity')}, ".toFixed('-Infinity')");
Decimal.errors = false;
T('Infinity', Infinity, 0);
T('Infinity', Infinity, NaN);
T('Infinity', Infinity, null);
T('Infinity', Infinity, Infinity);
T('NaN', NaN, -Infinity);
T('123.450', '12.345e1', new Decimal(3));
T('123.45', '12.345e1', null);
T('123.45', '12.345e1', u);
T('123.45', '12.345e1', NaN);
T('123.45', '12.345e1', 'NaN');
T('123.45', '12.345e1', []);
T('123.45', '12.345e1', {});
T('123.45', '12.345e1', '');
T('123.45', '12.345e1', ' ');
T('123.45', '12.345e1', 'hello');
T('123.45', '12.345e1', '\t');
T('123.45', '12.345e1', new Date);
T('123.45', '12.345e1', new RegExp);
T('123', '12.345e1', -0);
T('123.4500000', '12.345e1', 7.5);
T('123.45000000000', '12.345e1', '1.1e1');
T('123.5', '12.345e1', 1);
T('123.45', '12.345e1', '-1');
T('123.45', '12.345e1', 1e9 + 1);
T('123.45', '12.345e1', Infinity);
T('123.45', '12.345e1', '-Infinity');
// ROUND_HALF_CEIL
// Rounds towards nearest neighbour. If equidistant, rounds towards Infinity
Decimal.rounding = 7;
Decimal.errors = true;
T('0.1', '0.05', 1);
T('1', 0.5, 0);
T('1', 0.54, 0);
T('1', 0.55, 0);
T('1', 0.56, 0);
T('-1', -0.54, 0);
T('-0', -0.5, 0);
T('-1', -0.56, 0);
T('-0.5', -0.5, 1);
T('1.3', 1.25, 1);
T('-1.2', -1.25, 1);
T('234.2041', 234.20405, 4);
T('-234.2040', -234.20405, 4);
T('234.2041', '234.204050000000000000000000000000006', 4);
T('-234.2045', '-234.20449', 4);
T('-234.2041', '-234.204050000000000000000000000000006', 4);
T('999.0', 999, 1);
T('1000', 999.5, 0);
T('-999', -999.5, 0);
T('-999.5', -999.5, 1);
T('1.00000000000000000', '1.000000000000000000005', 17)
T('1.00000000000000000001', '1.000000000000000000005', 20)
T('-1.00000000000000000', '-1.000000000000000000005', 17)
T('-1.00000000000000000000', '-1.000000000000000000005', 20)
// ROUND_HALF_FLOOR
// Rounds towards nearest neighbour. If equidistant, rounds towards -Infinity
Decimal.rounding = 8;
T('0.0', '0.05', '1');
T('0', 0.5, '0');
T('1', 0.54, '0');
T('1', 0.55, '0');
T('1', 0.56, '0');
T('-1', -0.54, '0');
T('-1', -0.5, '0');
T('-1', -0.56, '0');
T('-0.5', -0.5, '1');
T('1.2', 1.25, '1');
T('-1.3', -1.25, '1');
T('234.2040', 234.20405, '4');
T('-234.2041', -234.20405, '4');
T('234.2040', '234.20404999999999999999999999999999', '4');
T('234.2041', '234.204050000000000000000000000000006', '4');
T('-234.2045', '-234.20449', '4');
T('-234.2041', '-234.204050000000000000000000000000006', '4');
T('999.0', 999, '1');
T('999', 999.5, '0');
T('-1000', -999.5, '0');
T('-999.5', -999.5, '1');
T('1.00000000000000000', '1.000000000000000000005', '17')
T('1.00000000000000000000', '1.000000000000000000005', '20')
T('-1.00000000000000000', '-1.000000000000000000005', '17')
T('-1.00000000000000000001', '-1.000000000000000000005', '20')
log('\n ' + passed + ' of ' + total + ' tests passed in ' + (+new Date() - start) + ' ms \n');
return [passed, total];
})(this.Decimal);
if (typeof module !== 'undefined' && module.exports) module.exports = count;