Move the sources to trunk
[opencv] / apps / Hawk / CVEiCL / EiC / module / stdClib / test / testprintf.c
1 #include "stdio.h"
2 #include "stdlib.h"
3
4 #include "ctype.h"
5 #include "limits.h"
6 #include "float.h"
7 #include "math.h"
8
9 #define eprintf printf 
10
11 void test1(void)
12 {
13         char *str = "Edmond";
14         char *str2 = "Claire Breen";
15         int d = 365;
16         double f1 = 12.567, f2 = 5666.56789;
17         double f3 = 999.99999, f4 = 899.9999;
18         eprintf("\n---------------test1\n");
19         eprintf("|%10d|%|10x|%10X|%10o|\n",d,d,d,d);
20         eprintf("|%+10d|%-+10d|%0+10d|%+10d|\n",d,d,d,-d);
21         eprintf("|%#10x|%-#10X|%|10s|%|.10s|\n",d,d,str,str2);
22         eprintf("|%021.0f|%!21.2f|\n",f1,f2);
23
24         eprintf("|%021.2f|%!21.2f|\n",f3,f4);
25 }
26
27 void test2(void)
28 {
29         eprintf("---------- test2\n");
30         eprintf("%f :-> 0.000000\n",0.0);
31         eprintf("%f :-> 1.000000\n",1.0);
32         eprintf("%f :-> 10.000000\n",10.0);
33         eprintf("%f :-> 12.345000\n",12.345);
34         eprintf("%f :-> 1234567.800000\n",1234567.8);
35         eprintf("%.2f :-> 1000.00\n",999.999);
36         eprintf("%.2f :-> 999.99\n",999.985999);
37         eprintf("%f :-> 0.100000\n",.099999999860301614);
38         eprintf("%f :-> 1.000000\n",.999999999860301614);
39         eprintf("%e :-> 0.000000e+00\n",0.0);
40         eprintf("%e :-> 1.000000e+00\n",1.0);
41         eprintf("%e :-> 1.000000e+01\n",10.0);
42         eprintf("%e :-> 1.234568e+11\n", 123456789999.4);
43         eprintf("%e :-> 1.234568e+06\n", 1234567.8);
44         eprintf("%E :-> 1.234568E+06\n", 1234567.8);
45         eprintf("%.5e :-> 4.94066e-300\n",4.9406565584124654e-300);
46         /*
47            does not handle long doubles
48         eprintf("%Lf :-> -123456789999.400000\n", -123456789999.4L);
49         */
50
51         eprintf("%.5f :-> -0.00000\n",-4.9406565584124654e-300);
52         eprintf("%e :-> -1.234568e+11\n", -123456789999.4);
53         eprintf("%.5e :-> -4.94066e-300\n",-4.9406565584124654e-300);
54         eprintf("%f :-> -123456789999.400000\n", -123456789999.4);
55         eprintf("%.5f :-> -0.00000\n",-4.9406565584124654e-300);
56 }
57
58 void test3(void)
59 {
60         eprintf("---------- test3\n");
61         eprintf("%.0f :-> 0\n",0.0);
62         eprintf("%.0f :-> 13\n",12.545);
63         eprintf("%.0f :-> 0\n",.099999999860301614);
64         eprintf("%.0f :-> 1\n",.999999999860301614);
65         eprintf("%.0e :-> 0e+00\n",0.0);
66         eprintf("%.0e :-> 1e+11\n", 123456789999.4);
67         eprintf("%.0e :-> 2e+11\n", 153456789999.4);
68         eprintf("%.0f :-> -0\n",-4.9406565584124654e-300);
69         eprintf("%.0f :-> -123456790000\n", -123456789999.9);
70         eprintf("%.0e :-> -1e+11\n", -123456789999.4);
71         eprintf("%.0e :-> -5e-300\n",-4.9406565584124654e-300);
72 }
73
74 void test4(void)
75 {
76         eprintf("---------- test4a\n");
77
78         eprintf("%g :-> 0\n", 0.0);
79         eprintf("%g :-> 10\n", 10.0);
80         eprintf("%g :-> 0.02\n", 0.02);
81         eprintf("%g :-> 1.234578e+06\n", 1234567.8);
82         eprintf("%g :-> 123.456\n", 123.456);
83         eprintf("%G :-> 1E+06\n", 1000000.0);
84
85         eprintf("---------- test4b\n");
86
87         eprintf("%.0g :-> 0e+00\n", 0.0);
88         eprintf("%.0g :-> 1e+01\n", 10.0);
89         eprintf("%.0g :-> 0\n", 0.02);
90         eprintf("%.0g :-> 1e+06\n", 1234567.8);
91         eprintf("%.0G :-> -2E+02\n", -153.456);
92         eprintf("%.0g :-> 1e+06\n", 1000000.0);
93
94         eprintf("---------- test4c\n");
95
96         eprintf("%#.0g :-> 0.0e+00\n", 0.0);
97         eprintf("%#.0g :-> 1.0e+01\n", 10.0);
98         eprintf("%#.0g :-> 0.0\n", 0.02);
99         eprintf("%#.0g :-> 1.2e+06\n", 1234567.8);
100         eprintf("%#+.0G :-> +1.5E+02\n", 153.456);
101         eprintf("%#.0g :-> 1.0e+06\n", 1000000.0);
102
103 }
104
105 void test5(void)
106 {
107         char *str = "-----------------------------------";
108         eprintf("\n---------------test5\n");
109         eprintf("|%*.*s|\n",20,20,str);
110
111         eprintf("|%!*g|\n",20,10.0);
112         eprintf("|%!*.*f|\n",20,2,1.2);
113         eprintf("|%!*.*f|\n",20,2,12.3);
114         eprintf("|%!*.*f|\n",20,2,1234567.8);
115         eprintf("|%!*.*f|\n",20,2,123456789012.9);
116         eprintf("|%!*g|\n",20,12345.67);
117         eprintf("|%!*G|\n",20,153.456);
118         eprintf("|%!*g|\n",20,1000000.0);
119         eprintf("|%#!*g|\n",20,-10.0);
120         eprintf("|%!*.*f|\n",20,2,-1.2);
121         eprintf("|%!*.*f|\n",20,2,-12.3);
122         eprintf("|%!*.*f|\n",20,2,-1234567.8);
123         eprintf("|%!*.*f|\n",20,2,-123456789012.9);
124         eprintf("|%!*g|\n",20, -12345.67);
125         eprintf("|%!*G|\n",20, -153.456);
126         eprintf("|%#!*.*g|\n",20,2, -1000000.0);
127         eprintf("|%+!*.*f|\n",20,2,1.2);
128         eprintf("|%+!*.*f|\n",20,2,12.3);
129         eprintf("|%+!*.*f|\n",20,2,1234567.8);
130         eprintf("|%+!*.*f|\n",20,2,123456789012.9);
131
132         eprintf("|%*.*s|\n",20,20,str);
133 }
134
135 void test6(void)
136 {
137         eprintf("\n-----------------test6\n");
138         eprintf("|%!*b|\n",20,20);
139         eprintf("|%!*c|\n",20,'E');
140         eprintf("|%|c|\n",'E');
141         eprintf("|%d%d%d%d%d%d\n",1,2,3,4,5,6);
142         eprintf("|%c%c%c%c%c%c|\n",'e','d','m','o','n','d');
143         eprintf("|%a%%%v|\n");
144         eprintf("|%.*s|\n",20,"--------------------------------------");
145 }
146
147 int main(void)
148 {
149         test1();
150         eprintf("<push CR to continue>");
151         getchar();
152         test2();
153         eprintf("<push CR to continue>");
154         getchar();
155         test3();
156         eprintf("<push CR to continue>");
157         getchar();
158         test4();
159         eprintf("<push CR to continue>");
160         getchar();
161         test5();
162         eprintf("<push CR to continue>");
163         getchar();
164         test6();
165         eprintf("<push CR to continue>");
166         getchar();
167
168         eprintf("<fini>\n");
169         
170         return 0;
171 }
172
173
174
175
176
177
178
179
180
181
182