======== formatter test ========
======== #1 ========

2147483647
-2147483648
-2147483647
-2147483648

======== #2 ========

3.141593e+09
3.141593E+09
3.141593e+02
3.141593E+02
3.141593
      3.141593
3.1415926536
314.159
3.14159e+09
3.14159E+09

======== #3 ========

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

======== #4 ========

%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|

======== #5 ========

%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|

======== #6 ========

%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|

======== #7 ========

%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|

======== #8 ========

%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|

======== #9 ========

%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|

======== #10 ========

* 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|

======== #11 ========

%1e       |3.141593e+00                |1.000000e-12                
%10e      |3.141593e+00                |1.000000e-12                
%.e       |3.141593e+00                |1.000000e-12                
%.0e      |3e+00                       |1e-12                       
%.1e      |3.1e+00                     |1.0e-12                     
%.6e      |3.141593e+00                |1.000000e-12                
%.10e     |3.1415926536e+00            |1.0000000000e-12            
%.14e     |3.14159265358979e+00        |1.00000000000000e-12        
%3.3e     |3.142e+00                   |1.000e-12                   
%13.3e    |    3.142e+00               |    1.000e-12               
%-13.3e$  |3.142e+00    $              |1.000e-12    $              
%013.3e   |00003.142e+00               |00001.000e-12               
%1f       |3.141593                    |0.000000                    
%10f      |  3.141593                  |  0.000000                  
%.f       |3.141593                    |0.000000                    
%.0f      |3                           |0                           
%.1f      |3.1                         |0.0                         
%.6f      |3.141593                    |0.000000                    
%.10f     |3.1415926536                |0.0000000000                
%.14f     |3.14159265358979            |0.00000000000100            
%3.3f     |3.142                       |0.000                       
%13.3f    |        3.142               |        0.000               
%-13.3f$  |3.142        $              |0.000        $              
%013.3f   |000000003.142               |000000000.000               
%1g       |3.14159                     |1e-12                       
%10g      |   3.14159                  |     1e-12                  
%.g       |3.14159                     |1e-12                       
%.0g      |3                           |1e-12                       
%.1g      |3                           |1e-12                       
%.6g      |3.14159                     |1e-12                       
%.10g     |3.141592654                 |1e-12                       
%.14g     |3.1415926535898             |1e-12                       
%3.3g     |3.14                        |1e-12                       
%13.3g    |         3.14               |        1e-12               
%-13.3g$  |3.14         $              |1e-12        $              
%013.3g   |0000000003.14               |000000001e-12               
