|
|
|
@ -49,8 +49,8 @@ var count = (function toFormat(Decimal) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function T(expected, value, sep1, dp, sep2){
|
|
|
|
|
assert(String(expected), new Decimal(value).toFormat(sep1, dp, sep2));
|
|
|
|
|
function T(expected, value, dp){
|
|
|
|
|
assert(expected, new Decimal(value).toFormat(dp));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
log('\n Testing toFormat...');
|
|
|
|
@ -62,32 +62,40 @@ var count = (function toFormat(Decimal) {
|
|
|
|
|
toExpPos: 9e15,
|
|
|
|
|
minE: -9e15,
|
|
|
|
|
maxE: 9e15,
|
|
|
|
|
errors: true
|
|
|
|
|
errors: true,
|
|
|
|
|
format: {
|
|
|
|
|
decimalSeparator : '.',
|
|
|
|
|
groupSeparator : ',',
|
|
|
|
|
groupSize : 3,
|
|
|
|
|
secondaryGroupSize : 0,
|
|
|
|
|
fractionGroupSeparator : ' ',
|
|
|
|
|
fractionGroupSize : 0
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
T(0, 0);
|
|
|
|
|
T(1, 1);
|
|
|
|
|
T(-1, -1);
|
|
|
|
|
T(123.456, 123.456);
|
|
|
|
|
T(NaN, NaN);
|
|
|
|
|
T(Infinity, 1/0);
|
|
|
|
|
T(-Infinity, -1/0);
|
|
|
|
|
|
|
|
|
|
T(0, 0, ' ');
|
|
|
|
|
T(1, 1, ' ');
|
|
|
|
|
T(-1, -1, ' ');
|
|
|
|
|
T(123.456, 123.456, ' ');
|
|
|
|
|
T(NaN, NaN, ' ');
|
|
|
|
|
T(Infinity, 1/0, ' ');
|
|
|
|
|
T(-Infinity, -1/0, ' ');
|
|
|
|
|
|
|
|
|
|
T('0.0', 0, ' ', 1);
|
|
|
|
|
T('1.00', 1, ' ', 2);
|
|
|
|
|
T('-1.000', -1, ' ', 3);
|
|
|
|
|
T('123.4560', 123.456, ' ', 4);
|
|
|
|
|
T(NaN, NaN, ' ', 5);
|
|
|
|
|
T(Infinity, 1/0, ' ', 6);
|
|
|
|
|
T(-Infinity, -1/0, ' ', 7);
|
|
|
|
|
T('0', 0);
|
|
|
|
|
T('1', 1);
|
|
|
|
|
T('-1', -1);
|
|
|
|
|
T('123.456', 123.456);
|
|
|
|
|
T('NaN', NaN);
|
|
|
|
|
T('Infinity', 1/0);
|
|
|
|
|
T('-Infinity', -1/0);
|
|
|
|
|
|
|
|
|
|
T('0', 0, null);
|
|
|
|
|
T('1', 1, undefined);
|
|
|
|
|
T('-1', -1, 0);
|
|
|
|
|
T('123.456', 123.456, 3);
|
|
|
|
|
T('NaN', NaN, 0);
|
|
|
|
|
T('Infinity', 1/0, 3);
|
|
|
|
|
T('-Infinity', -1/0, 0);
|
|
|
|
|
|
|
|
|
|
T('0.0', 0, 1);
|
|
|
|
|
T('1.00', 1, 2);
|
|
|
|
|
T('-1.000', -1, 3);
|
|
|
|
|
T('123.4560', 123.456, 4);
|
|
|
|
|
T('NaN', NaN, 5);
|
|
|
|
|
T('Infinity', 1/0, 6);
|
|
|
|
|
T('-Infinity', -1/0, 7);
|
|
|
|
|
|
|
|
|
|
T('9,876.54321', 9876.54321);
|
|
|
|
|
T('4,018,736,400,000,000,000,000', '4.0187364e+21');
|
|
|
|
@ -108,42 +116,125 @@ var count = (function toFormat(Decimal) {
|
|
|
|
|
T('99', 99);
|
|
|
|
|
T('9', 9);
|
|
|
|
|
|
|
|
|
|
T('999 999 999 999 999', 999999999999999, ' ', 0, ' ');
|
|
|
|
|
T('99 999 999 999 999.0', 99999999999999, ' ', 1, ' ');
|
|
|
|
|
T('9 999 999 999 999.00', 9999999999999, ' ', 2, ' ');
|
|
|
|
|
T('999 999 999 999.000', 999999999999, ' ', 3, ' ');
|
|
|
|
|
T('99 999 999 999.0000', 99999999999, ' ', 4, ' ');
|
|
|
|
|
T('9 999 999 999.00000', 9999999999, ' ', 5, ' ');
|
|
|
|
|
T('999 999 999.00000 0', 999999999, ' ', 6, ' ');
|
|
|
|
|
T('99 999 999.00000 00', 99999999, ' ', 7, ' ');
|
|
|
|
|
T('9 999 999.00000 000', 9999999, ' ', 8, ' ');
|
|
|
|
|
T('999 999.00000 0000', 999999, ' ', 9, ' ');
|
|
|
|
|
T('99 999.00000 00000', 99999, ' ', 10, ' ');
|
|
|
|
|
T('9 999.00000 00000 0', 9999, ' ', 11, ' ');
|
|
|
|
|
T('999.00000 00000 00', 999, ' ', 12, ' ');
|
|
|
|
|
T('99.00000 00000 000', 99, ' ', 13, ' ');
|
|
|
|
|
T('9.00000 00000 0000', 9, ' ', 14, ' ');
|
|
|
|
|
|
|
|
|
|
T('1.00000 00000 00000', 1, ' ', 15, ' ');
|
|
|
|
|
T('1.00000 00000 0000', 1, ' ', 14, ' ');
|
|
|
|
|
T('1.00000 00000 000', 1, ' ', 13, ' ');
|
|
|
|
|
T('1.00000 00000 00', 1, ' ', 12, ' ');
|
|
|
|
|
T('1.00000 00000 0', 1, ' ', 11, ' ');
|
|
|
|
|
T('1.00000 00000', 1, ' ', 10, ' ');
|
|
|
|
|
T('1.00000 0000', 1, ' ', 9, ' ');
|
|
|
|
|
|
|
|
|
|
T('76,852.342091', '7.6852342091e+4');
|
|
|
|
|
T('4 018 736 400 000 000 000 000', '4.0187364e+21', ' ');
|
|
|
|
|
T('76 852.342091', '7.6852342091e+4', ' ');
|
|
|
|
|
T('76 852.34', '7.6852342091e+4', ' ', 2);
|
|
|
|
|
|
|
|
|
|
T('76 852.34209 10871 45832 64089', '7.685234209108714583264089e+4', ' ', 20, ' ');
|
|
|
|
|
T('76 852.34209 10871 45832 64089 7', '7.6852342091087145832640897e+4', ' ', 21, ' ');
|
|
|
|
|
T('76 852.34209 10871 45832 64089 70000', '7.6852342091087145832640897e+4', ' ', 25, ' ');
|
|
|
|
|
T('76 852.34', '7.6852342091087145832640897e+4', ' ', 2, ' ');
|
|
|
|
|
Decimal.format.groupSeparator = ' ';
|
|
|
|
|
|
|
|
|
|
T('76 852.34', '7.6852342091e+4', 2);
|
|
|
|
|
T('76 852.342091', '7.6852342091e+4');
|
|
|
|
|
T('76 852.3420910871', '7.6852342091087145832640897e+4', 10);
|
|
|
|
|
|
|
|
|
|
Decimal.format.fractionGroupSize = 5;
|
|
|
|
|
|
|
|
|
|
T('4 018 736 400 000 000 000 000', '4.0187364e+21');
|
|
|
|
|
T('76 852.34209 10871 45832 64089', '7.685234209108714583264089e+4', 20);
|
|
|
|
|
T('76 852.34209 10871 45832 64089 7', '7.6852342091087145832640897e+4', 21);
|
|
|
|
|
T('76 852.34209 10871 45832 64089 70000', '7.6852342091087145832640897e+4', 25);
|
|
|
|
|
|
|
|
|
|
T('999 999 999 999 999', 999999999999999, 0);
|
|
|
|
|
T('99 999 999 999 999.0', 99999999999999, 1);
|
|
|
|
|
T('9 999 999 999 999.00', 9999999999999, 2);
|
|
|
|
|
T('999 999 999 999.000', 999999999999, 3);
|
|
|
|
|
T('99 999 999 999.0000', 99999999999, 4);
|
|
|
|
|
T('9 999 999 999.00000', 9999999999, 5);
|
|
|
|
|
T('999 999 999.00000 0', 999999999, 6);
|
|
|
|
|
T('99 999 999.00000 00', 99999999, 7);
|
|
|
|
|
T('9 999 999.00000 000', 9999999, 8);
|
|
|
|
|
T('999 999.00000 0000', 999999, 9);
|
|
|
|
|
T('99 999.00000 00000', 99999, 10);
|
|
|
|
|
T('9 999.00000 00000 0', 9999, 11);
|
|
|
|
|
T('999.00000 00000 00', 999, 12);
|
|
|
|
|
T('99.00000 00000 000', 99, 13);
|
|
|
|
|
T('9.00000 00000 0000', 9, 14);
|
|
|
|
|
|
|
|
|
|
T('1.00000 00000 00000', 1, 15);
|
|
|
|
|
T('1.00000 00000 0000', 1, 14);
|
|
|
|
|
T('1.00000 00000 000', 1, 13);
|
|
|
|
|
T('1.00000 00000 00', 1, 12);
|
|
|
|
|
T('1.00000 00000 0', 1, 11);
|
|
|
|
|
T('1.00000 00000', 1, 10);
|
|
|
|
|
T('1.00000 0000', 1, 9);
|
|
|
|
|
|
|
|
|
|
Decimal.format.fractionGroupSize = 0;
|
|
|
|
|
|
|
|
|
|
T('4 018 736 400 000 000 000 000', '4.0187364e+21');
|
|
|
|
|
T('76 852.34209108714583264089', '7.685234209108714583264089e+4', 20);
|
|
|
|
|
T('76 852.342091087145832640897', '7.6852342091087145832640897e+4', 21);
|
|
|
|
|
T('76 852.3420910871458326408970000', '7.6852342091087145832640897e+4', 25);
|
|
|
|
|
|
|
|
|
|
T('999 999 999 999 999', 999999999999999, 0);
|
|
|
|
|
T('99 999 999 999 999.0', 99999999999999, 1);
|
|
|
|
|
T('9 999 999 999 999.00', 9999999999999, 2);
|
|
|
|
|
T('999 999 999 999.000', 999999999999, 3);
|
|
|
|
|
T('99 999 999 999.0000', 99999999999, 4);
|
|
|
|
|
T('9 999 999 999.00000', 9999999999, 5);
|
|
|
|
|
T('999 999 999.000000', 999999999, 6);
|
|
|
|
|
T('99 999 999.0000000', 99999999, 7);
|
|
|
|
|
T('9 999 999.00000000', 9999999, 8);
|
|
|
|
|
T('999 999.000000000', 999999, 9);
|
|
|
|
|
T('99 999.0000000000', 99999, 10);
|
|
|
|
|
T('9 999.00000000000', 9999, 11);
|
|
|
|
|
T('999.000000000000', 999, 12);
|
|
|
|
|
T('99.0000000000000', 99, 13);
|
|
|
|
|
T('9.00000000000000', 9, 14);
|
|
|
|
|
|
|
|
|
|
T('1.000000000000000', 1, 15);
|
|
|
|
|
T('1.00000000000000', 1, 14);
|
|
|
|
|
T('1.0000000000000', 1, 13);
|
|
|
|
|
T('1.000000000000', 1, 12);
|
|
|
|
|
T('1.00000000000', 1, 11);
|
|
|
|
|
T('1.0000000000', 1, 10);
|
|
|
|
|
T('1.000000000', 1, 9);
|
|
|
|
|
|
|
|
|
|
Decimal.config({
|
|
|
|
|
format: {
|
|
|
|
|
decimalSeparator : '.',
|
|
|
|
|
groupSeparator : ',',
|
|
|
|
|
groupSize : 3,
|
|
|
|
|
secondaryGroupSize : 2
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
T('9,876.54321', 9876.54321);
|
|
|
|
|
T('10,00,037.123', '1000037.123456789', 3);
|
|
|
|
|
T('4,01,87,36,40,00,00,00,00,00,000', '4.0187364e+21');
|
|
|
|
|
|
|
|
|
|
T('99,99,99,99,99,99,999', 999999999999999);
|
|
|
|
|
T('9,99,99,99,99,99,999', 99999999999999);
|
|
|
|
|
T('99,99,99,99,99,999', 9999999999999);
|
|
|
|
|
T('9,99,99,99,99,999', 999999999999);
|
|
|
|
|
T('99,99,99,99,999', 99999999999);
|
|
|
|
|
T('9,99,99,99,999', 9999999999);
|
|
|
|
|
T('99,99,99,999', 999999999);
|
|
|
|
|
T('9,99,99,999', 99999999);
|
|
|
|
|
T('99,99,999', 9999999);
|
|
|
|
|
T('9,99,999', 999999);
|
|
|
|
|
T('99,999', 99999);
|
|
|
|
|
T('9,999', 9999);
|
|
|
|
|
T('999', 999);
|
|
|
|
|
T('99', 99);
|
|
|
|
|
T('9', 9);
|
|
|
|
|
|
|
|
|
|
Decimal.format.decimalSeparator = ',';
|
|
|
|
|
Decimal.format.groupSeparator = '.';
|
|
|
|
|
|
|
|
|
|
T('1.23.45.60.000,000000000008', '1.23456000000000000000789e+9', 12);
|
|
|
|
|
|
|
|
|
|
Decimal.format.groupSeparator = '';
|
|
|
|
|
|
|
|
|
|
T('10000000000123456789000000,0000000001', '10000000000123456789000000.000000000100000001', 10);
|
|
|
|
|
|
|
|
|
|
Decimal.format.groupSeparator = ' ';
|
|
|
|
|
Decimal.format.groupSize = 1;
|
|
|
|
|
Decimal.format.secondaryGroupSize = 4;
|
|
|
|
|
|
|
|
|
|
T('4658 0734 6509 8347 6580 3645 0,6', '4658073465098347658036450.59764985763489569875659876459', 1);
|
|
|
|
|
|
|
|
|
|
Decimal.format.fractionGroupSize = 2;
|
|
|
|
|
Decimal.format.fractionGroupSeparator = ':';
|
|
|
|
|
Decimal.format.secondaryGroupSize = null;
|
|
|
|
|
|
|
|
|
|
T('1,234,560,000.00000 00000 08', '1.23456000000000000000789e+9', ',', 12, ' ');
|
|
|
|
|
T('1-234-560-000.00000-00000-0789', '1.23456000000000000000789e+9', '-', 14, '-');
|
|
|
|
|
T('4 6 5 8 0 7 3 4 6 5 0 9 8 3 4 7 6 5 8 0 3 6 4 5 0,59:76:49:85:76:34:89:56:98:75:65:98:76:45:9', '4658073465098347658036450.59764985763489569875659876459' );
|
|
|
|
|
|
|
|
|
|
log('\n ' + passed + ' of ' + total + ' tests passed in ' + (+new Date() - start) + ' ms \n');
|
|
|
|
|
return [passed, total];
|
|
|
|
|