1 /*
2  *  TEST SUITE FOR MB/WC FUNCTIONS IN CLIBRARY
3  *
4  *	 FILE:	dat_strfmon.c
5  *
6  *	 STRFMON:  size_t strfmon (char *buf, size_t nbyte, char *fmt, ... );
7  */
8 
9 /*
10  *  NOTE:
11  *
12  *  The buffer size should be enough to contain a string including a
13  *  null char.
14  *  Returns the number of bytes of the string (NOT including a null char).
15  */
16 
17 TST_STRFMON tst_strfmon_loc [] = {
18   {
19     { Tstrfmon, TST_LOC_de },
20     {
21       {
22 	/* #01 */
23 	/*inp*/ { 24, "%n %% %i",	     123.00			},
24 	/*exp*/ { 0,1,23,		     "123,00 EUR % 123,00 EUR"	},
25       },
26       {
27 	/* #02 */
28 	/*inp*/ { 24, "%n %% %i",	     123.00			},
29 	/*exp*/ { 0,1,23,		     "123,00 EUR % 123,00 EUR"	},
30       },
31       {
32 	/* #03 */
33 	/*inp*/ { 23, "%n %% %i",	     123.00			},
34 	/*exp*/ { E2BIG,1,-1,	     ""					},
35       },
36       {
37 	/* #04 */
38 	/*inp*/ { 31, "%n|%i",	     1234.561				},
39 	/*exp*/ { 0,1,25,		     "1.234,56 EUR|1.234,56 EUR"},
40       },
41       {
42 	/* #05 */
43 	/*inp*/ { 33, "%n|%i",	    -1234.561				},
44 	/*exp*/ { 0,1,27,		     "-1.234,56 EUR|-1.234,56 EUR"},
45       },
46       {
47 	/* #06 */
48 	/*inp*/ { 33, "%13n|%12i",	     1234.561			},
49 	/*exp*/ { 0,1,26,		     " 1.234,56 EUR|1.234,56 EUR"},
50       },
51       {
52 	/* #07 */
53 	/*inp*/ { 33, "%12n|%12i",	    -1234.561			},
54 	/*exp*/ { 0,1,27,		     "-1.234,56 EUR|-1.234,56 EUR"},
55       },
56       {
57 	/* #08 */
58 	/*inp*/ { 33, "%#5n|%#5i",	     1234.561			},
59 	/*exp*/ { 0,1,29,		     "  1.234,56 EUR|  1.234,56 EUR"},
60       },
61       {
62 	/* #09 */
63 	/*inp*/ { 33, "%#5n|%#5i",	    -1234.561			},
64 	/*exp*/ { 0,1,29,		     "- 1.234,56 EUR|- 1.234,56 EUR"},
65       },
66       {
67 	/* #10 */
68 	/*inp*/ { 33, "%=*#5n|%=*#5i",	 1234.561			},
69 	/*exp*/ { 0,1,29,		     " *1.234,56 EUR| *1.234,56 EUR"},
70       },
71       {
72 	/* #11 */
73 	/*inp*/ { 33, "%=0#5n|%=0#5i",	-1234.561			},
74 	/*exp*/ { 0,1,29,		     "-01.234,56 EUR|-01.234,56 EUR"},
75       },
76       {
77 	/* #12 */
78 	/*inp*/ { 33, "%^#5n|%^#5i",	-1234.561			},
79 	/*exp*/ { 0,1,27,		     "- 1234,56 EUR|- 1234,56 EUR"},
80       },
81       {
82 	/* #13 */
83 	/*inp*/ { 33, "%#5.0n|%#5.0i",	 1234.444			},
84 	/*exp*/ { 0,1,23,		     "  1.234 EUR|  1.234 EUR"	},
85       },
86       {
87 	/* #14 */
88 	/*inp*/ { 33, "%#5.0n|%#5.4i",	-1234.555			},
89 	/*exp*/ { 0,1,28,		     "- 1.235 EUR|- 1.234,5550 EUR"},
90       },
91       {
92 	/* #15 */
93 	/*inp*/ { 33, "%(#5n|%!(#5i",	-1234.561			},
94 	/*exp*/ { 0,1,27,		     "( 1.234,56 EUR)|( 1.234,56)"},
95       },
96       { .is_last = 1 }
97     }
98   },
99   {
100     { Tstrfmon, TST_LOC_enUS },
101     {
102       {
103 	/* #01 */
104 	/*inp*/ { 22, "%n %% %i",	     123.00			},
105 	/*exp*/ { 0,1,20,		     "$123.00 % USD 123.00"	},
106       },
107       {
108 	/* #02 */
109 	/*inp*/ { 21, "%n %% %i",	     123.00			},
110 	/*exp*/ { 0,1,20,		     "$123.00 % USD 123.00"	},
111       },
112       {
113 	/* #03 */
114 	/*inp*/ { 20, "%n %% %i",	     123.00			},
115 	/*exp*/ { E2BIG,1,-1,	     ""					},
116       },
117       {
118 	/* #04 */
119 	/*inp*/ { 30, "%n|%i",	     1234.561				},
120 	/*exp*/ { 0,1,22,		     "$1,234.56|USD 1,234.56"	},
121       },
122       {
123 	/* #05 */
124 	/*inp*/ { 32, "%n|%i",	    -1234.561				},
125 	/*exp*/ { 0,1,24,		     "-$1,234.56|-USD 1,234.56"	},
126       },
127       {
128 	/* #06 */
129 	/*inp*/ { 30, "%12n|%12i",	     1234.561			},
130 	/*exp*/ { 0,1,25,		     "   $1,234.56|USD 1,234.56"},
131       },
132       {
133 	/* #07 */
134 	/*inp*/ { 32, "%12n|%12i",	    -1234.561			},
135 	/*exp*/ { 0,1,26,		     "  -$1,234.56|-USD 1,234.56"},
136       },
137       {
138 	/* #08 */
139 	/*inp*/ { 32, "%#5n|%#5i",	     1234.561			},
140 	/*exp*/ { 0,1,26,		     " $ 1,234.56| USD  1,234.56"},
141       },
142       {
143 	/* #09 */
144 	/*inp*/ { 32, "%#5n|%#5i",	    -1234.561			},
145 	/*exp*/ { 0,1,26,		     "-$ 1,234.56|-USD  1,234.56"},
146       },
147       {
148 	/* #10 */
149 	/*inp*/ { 32, "%=*#5n|%=*#5i",	 1234.561			},
150 	/*exp*/ { 0,1,26,		     " $*1,234.56| USD *1,234.56"},
151       },
152       {
153 	/* #11 */
154 	/*inp*/ { 32, "%=0#5n|%=0#5i",	-1234.561			},
155 	/*exp*/ { 0,1,26,		     "-$01,234.56|-USD 01,234.56"},
156       },
157       {
158 	/* #12 */
159 	/*inp*/ { 32, "%^#5n|%^#5i",	-1234.561			},
160 	/*exp*/ { 0,1,24,		     "-$ 1234.56|-USD  1234.56"	},
161       },
162       {
163 	/* #13 */
164 	/*inp*/ { 32, "%#5.0n|%#5.0i",	 1234.444			},
165 	/*exp*/ { 0,1,20,		     " $ 1,234| USD  1,234"	},
166       },
167       {
168 	/* #14 */
169 	/*inp*/ { 32, "%#5.0n|%#5.4i",	-1234.555			},
170 	/*exp*/ { 0,1,25,		     "-$ 1,235|-USD  1,234.5550"},
171       },
172       {
173 	/* #15 */
174 	/*inp*/ { 32, "%(#5n|%!(#5i",	-1234.561			},
175 	/*exp*/ { 0,1,24,		     "($ 1,234.56)|( 1,234.56)"	},
176       },
177       { .is_last = 1 }
178     }
179   },
180   {
181     { Tstrfmon, TST_LOC_eucJP },
182     {
183       {
184 	/* #01 */
185 	/*inp*/ { 17, "%n %% %i",	 123.00				   },
186 	/*exp*/ { 0,1,15,		 "\241\357123 % JPY 123"	   },
187       },
188       {
189 	/* #02 */
190 	/*inp*/ { 16, "%n %% %i",	 123.00				   },
191 	/*exp*/ { 0,1,15,		 "\241\357123 % JPY 123"	   },
192       },
193       {
194 	/* #03 */
195 	/*inp*/ { 15, "%n %% %i",	 123.00				   },
196 	/*exp*/ { E2BIG,1,-1,		 ""				   },
197       },
198       {
199 	/* #04 */
200 	/*inp*/ { 30, "%n|%i",		 1234.561			   },
201 	/*exp*/ { 0,1,17,		 "\241\3571,235|JPY 1,235"	   },
202       },
203       {
204 	/* #05 */
205 	/*inp*/ { 32, "%n|%i",		-1234.561			   },
206 	/*exp*/ { 0,1,19,		 "\241\357-1,235|JPY -1,235"	   },
207       },
208       {
209 	/* #06 */
210 	/*inp*/ { 32, "%12n|%12i",	 1234.561			   },
211 	/*exp*/ { 0,1,25,		 "     \241\3571,235|   JPY 1,235" },
212       },
213       {
214 	/* #07 */
215 	/*inp*/ { 32, "%12n|%12i",	-1234.561			   },
216 	/*exp*/ { 0,1,25,		 "    \241\357-1,235|  JPY -1,235" },
217       },
218       {
219 	/* #08 */
220 	/*inp*/ { 32, "%#5n|%#5i",	 1234.561			   },
221 	/*exp*/ { 0,1,21,		 " \241\357 1,235| JPY  1,235"	   },
222       },
223       {
224 	/* #09 */
225 	/*inp*/ { 32, "%#5n|%#5i",	-1234.561			   },
226 	/*exp*/ { 0,1,21,		 "\241\357- 1,235|JPY - 1,235"	   },
227       },
228       {
229 	/* #10 */
230 	/*inp*/ { 32, "%=*#5n|%=*#5i",	 1234.561			   },
231 	/*exp*/ { 0,1,21,		 " \241\357*1,235| JPY *1,235"	   },
232       },
233       {
234 	/* #11 */
235 	/*inp*/ { 32, "%=0#5n|%=0#5i",	-1234.561			   },
236 	/*exp*/ { 0,1,21,		 "\241\357-01,235|JPY -01,235"	   },
237       },
238       {
239 	/* #12 */
240 	/*inp*/ { 32, "%^#5n|%^#5i",	-1234.561			   },
241 	/*exp*/ { 0,1,19,		 "\241\357- 1235|JPY - 1235"	   },
242       },
243       {
244 	/* #13 */
245 	/*inp*/ { 32, "%#5.0n|%#5.0i",	 1234.444			   },
246 	/*exp*/ { 0,1,21,		 " \241\357 1,234| JPY  1,234"	   },
247       },
248       {
249 	/* #14 */
250 	/*inp*/ { 32, "%#5.0n|%#5.4i",	-1234.555			   },
251 	/*exp*/ { 0,1,26,		 "\241\357- 1,235|JPY - 1,234.5550"},
252       },
253       {
254 	/* #15 */
255 	/*inp*/ { 32, "%(#5n|%!(#5i",	-1234.561			   },
256 	/*exp*/ { 0,1,19,		 "(\241\357 1,235)|( 1,235)"	   },
257       },
258       { .is_last = 1 }
259     }
260   },
261   {
262     { Tstrfmon, TST_LOC_end }
263   }
264 };
265