======== formatter test ========
2147483647
-2147483648
-2147483647
-2147483648
3.14159e+09
3.14159E+09
3.14159e+02
3.14159E+02
3.141593
            3.141593
3.1415926536
314.159
3.14159e+09
3.14159E+09
1
1
1 2 3 4 5 6
1000 100 10 1
1000 200 20 2
1000 300 30 3
1000 400 40 4
1000 100 10 1
1000 200 20 2
1000 300 30 3
10 1
20 2
30 3
1 2
1 2
1 2
1 10
2 11
3 12
4 13
5 14
1 1 10
1 2 11
1 3 12
1 4 13
1 5 14
%d format
|%d|%d|                 |123456|-123456|
|%12d|%12d|             |      123456|     -123456|
|%#12d|%#12d|           |      123456|     -123456|
|%-12d|%-12d|           |123456      |-123456     |
|%.12d|%.12d|           |000000123456|-000000123456|
|%#.12d|%#.12d|         |000000123456|-000000123456|
|%12.8d|%12.8d|         |    00123456|   -00123456|
|%.4d|%.4d|             |123456|-123456|
|%+d|%+d|               |+123456|-123456|
|% d|% d|               | 123456|-123456|
%u format
|%u|%u|                 |123456|4294843840|
|%12u|%12u|             |      123456|  4294843840|
|%#12u|%#12u|           |      123456|  4294843840|
|%-12u|%-12u|           |123456      |4294843840  |
|%.12u|%.12u|           |000000123456|004294843840|
|%#.12u|%#.12u|         |000000123456|004294843840|
|%12.8u|%12.8u|         |    00123456|  4294843840|
|%.4u|%.4u|             |123456|4294843840|
|%+u|%+u|               |123456|4294843840|
|% u|% u|               |123456|4294843840|
%b format
|%b|%b|                 |1111011|11111111111111111111111110000101|
|%12b|%12b|             |     1111011|11111111111111111111111110000101|
|%#12b|%#12b|           |   0b1111011|0b11111111111111111111111110000101|
|%-12b|%-12b|           |1111011     |11111111111111111111111110000101|
|%.12b|%.12b|           |000001111011|11111111111111111111111110000101|
|%12.8b|%12.8b|         |    01111011|11111111111111111111111110000101|
|%.4b|%.4b|             |1111011|11111111111111111111111110000101|
|%+b|%+b|               |1111011|11111111111111111111111110000101|
|% b|% b|               |1111011|11111111111111111111111110000101|
%o format
|%o|%o|                 |361100|37777416700|
|%12o|%12o|             |      361100| 37777416700|
|%#12o|%#12o|           |     0361100|037777416700|
|%-12o|%-12o|           |361100      |37777416700 |
|%.12o|%.12o|           |000000361100|037777416700|
|%12.8o|%12.8o|         |    00361100| 37777416700|
|%.4o|%.4o|             |361100|37777416700|
|%+o|%+o|               |361100|37777416700|
|% o|% o|               |361100|37777416700|
%x format
|%x|%x|                 |1e240|fffe1dc0|
|%12x|%12x|             |       1e240|    fffe1dc0|
|%#12x|%#12x|           |     0x1e240|  0xfffe1dc0|
|%-12x|%-12x|           |1e240       |fffe1dc0    |
|%.12x|%.12x|           |00000001e240|0000fffe1dc0|
|%#.12x|%#.12x|         |0x00000001e240|0x0000fffe1dc0|
|%12.8x|%12.8x|         |    0001e240|    fffe1dc0|
|%.4x|%.4x|             |1e240|fffe1dc0|
|%+x|%+x|               |1e240|fffe1dc0|
|% x|% x|               |1e240|fffe1dc0|
%X format
|%X|%X|                 |1E240|FFFE1DC0|
|%12X|%12X|             |       1E240|    FFFE1DC0|
|%#12X|%#12X|           |     0X1E240|  0XFFFE1DC0|
|%-12X|%-12X|           |1E240       |FFFE1DC0    |
|%.12X|%.12X|           |00000001E240|0000FFFE1DC0|
|%#.12X|%#.12X|         |0X00000001E240|0X0000FFFE1DC0|
|%12.8X|%12.8X|         |    0001E240|    FFFE1DC0|
|%.4X|%.4X|             |1E240|FFFE1DC0|
|%+X|%+X|               |1E240|FFFE1DC0|
|% X|% X|               |1E240|FFFE1DC0|
* format
|%*d|                   |123456   |
|%*u|                   |123456   |
|%*o|                   |361100   |
|%*x|                   |1e240    |
|%*X|                   |1E240    |
|%*s|                   |hello    |
|%*d|                   |123456  |
|%*u|                   |123456  |
|%*o|                   |361100  |
|%*x|                   |1e240   |
|%*X|                   |1E240   |
|%*s|                   |hello   |
|%*d|                   |123456 |
|%*u|                   |123456 |
|%*o|                   |361100 |
|%*x|                   |1e240  |
|%*X|                   |1E240  |
|%*s|                   |hello  |
|%*d|                   |123456|
|%*u|                   |123456|
|%*o|                   |361100|
|%*x|                   |1e240 |
|%*X|                   |1E240 |
|%*s|                   |hello |
|%*d|                   |123456|
|%*u|                   |123456|
|%*o|                   |361100|
|%*x|                   |1e240|
|%*X|                   |1E240|
|%*s|                   |hello|
|%*d|                   |123456|
|%*u|                   |123456|
|%*o|                   |361100|
|%*x|                   |1e240|
|%*X|                   |1E240|
|%*s|                   |hello|
|%*d|                   |123456|
|%*u|                   |123456|
|%*o|                   |361100|
|%*x|                   |1e240|
|%*X|                   |1E240|
|%*s|                   |hello|
|%*d|                   |123456|
|%*u|                   |123456|
|%*o|                   |361100|
|%*x|                   |1e240|
|%*X|                   |1E240|
|%*s|                   |hello|
|%*d|                   |123456|
|%*u|                   |123456|
|%*o|                   |361100|
|%*x|                   | 1e240|
|%*X|                   | 1E240|
|%*s|                   | hello|
|%*d|                   | 123456|
|%*u|                   | 123456|
|%*o|                   | 361100|
|%*x|                   |  1e240|
|%*X|                   |  1E240|
|%*s|                   |  hello|
|%*d|                   |  123456|
|%*u|                   |  123456|
|%*o|                   |  361100|
|%*x|                   |   1e240|
|%*X|                   |   1E240|
|%*s|                   |   hello|
|%*d|                   |   123456|
|%*u|                   |   123456|
|%*o|                   |   361100|
|%*x|                   |    1e240|
|%*X|                   |    1E240|
|%*s|                   |    hello|
