1 # Test data for test-strfmon, which checks it's implementation in glibc
2 # Copyright (C) 1996-2017 Free Software Foundation, Inc.
3 # This file is part of the GNU C Library.
4 # Contributed by Jochen Hein <jochen.hein@delphi.central.de>, 1997.
7 # The GNU C Library is free software; you can redistribute it and/or
8 # modify it under the terms of the GNU Lesser General Public
9 # License as published by the Free Software Foundation; either
10 # version 2.1 of the License, or (at your option) any later version.
12 # The GNU C Library is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 # Lesser General Public License for more details.
17 # You should have received a copy of the GNU Lesser General Public
18 # License along with the GNU C Library; if not, see
19 # <http://www.gnu.org/licenses/>.
21 # The format of this file is pretty simple: Each line contains a test
22 # for strfmon. Fields are separated by TABs. Lines that start with a
23 # '#' are comments and are ignored.
26 # #1 locale which is to be checked
27 # #2 format string which is fed into strfmon
28 # #3 double value that is used for formatting
29 # #4 the expected result (may contain trailing spaces!)
30 # This field might be enclosed with "" to make it easier to see
33 # First the implementation without any locale-dependent data
34 # - no currency symbol is printed, formatting is somewhat standard
44 C %=*#9n 1.23 ********1.23
45 C %=*#9n -1.23 -********1.23
46 C %-14#5.4n 1.23 " 1.2300 "
47 C %-14#5.4n -1.23 "- 1.2300 "
48 C %-14#5.4n 123.45 " 123.4500 "
49 C %-14#5.4n 123456 " 123456.0000 "
51 # check both the german locale and strfmon with that data
53 de_DE.ISO-8859-1 %n 1.23 1,23 EUR
54 de_DE.ISO-8859-1 %n -1.23 -1,23 EUR
55 de_DE.ISO-8859-1 %n 1234.56 1.234,56 EUR
56 de_DE.ISO-8859-1 %12n 123.45 123,45 EUR
57 de_DE.ISO-8859-1 %12n -123.45 -123,45 EUR
58 de_DE.ISO-8859-1 %12n 3456.781 3.456,78 EUR
59 de_DE.ISO-8859-1 %^n 1234.56 1234,56 EUR
60 de_DE.ISO-8859-1 %+n 1234.56 1.234,56 EUR
61 de_DE.ISO-8859-1 %+n -1234.56 -1.234,56 EUR
62 de_DE.ISO-8859-1 %(n 1234.56 1.234,56 EUR
63 de_DE.ISO-8859-1 %(n -1234.56 (1.234,56 EUR)
64 de_DE.ISO-8859-1 %^n 1234.56 1234,56 EUR
65 de_DE.ISO-8859-1 %i 1.23 1,23 EUR
66 de_DE.ISO-8859-1 %i -1.23 -1,23 EUR
67 de_DE.ISO-8859-1 %i 1234.56 1.234,56 EUR
68 de_DE.ISO-8859-1 %^i 1234.56 1234,56 EUR
69 de_DE.ISO-8859-1 %+i 1234.56 1.234,56 EUR
70 de_DE.ISO-8859-1 %+i -1234.56 -1.234,56 EUR
71 de_DE.ISO-8859-1 %(i 1234.56 1.234,56 EUR
72 de_DE.ISO-8859-1 %(i -1234.56 (1.234,56 EUR)
73 de_DE.ISO-8859-1 %^i 1234.56 1234,56 EUR
74 de_DE.ISO-8859-1 %#5n 123.45 123,45 EUR
75 de_DE.ISO-8859-1 %#5n -123.45 - 123,45 EUR
76 de_DE.ISO-8859-1 %#5n 3456.781 3.456,78 EUR
77 de_DE.ISO-8859-1 %=*#5n 123.45 ***123,45 EUR
78 de_DE.ISO-8859-1 %=*#5n -123.45 -***123,45 EUR
79 de_DE.ISO-8859-1 %=*#5n 3456.781 *3.456,78 EUR
80 de_DE.ISO-8859-1 %=0#5n 123.45 000123,45 EUR
81 de_DE.ISO-8859-1 %=0#5n -123.45 -000123,45 EUR
82 de_DE.ISO-8859-1 %=0#5n 3456.781 03.456,78 EUR
83 de_DE.ISO-8859-1 %^#5n 123.45 123,45 EUR
84 de_DE.ISO-8859-1 %^#5n -123.45 - 123,45 EUR
85 de_DE.ISO-8859-1 %^#5n 3456.781 3456,78 EUR
86 de_DE.ISO-8859-1 %^#5.0n 123.45 123 EUR
87 de_DE.ISO-8859-1 %^#5.0n -123.45 - 123 EUR
88 de_DE.ISO-8859-1 %^#5.0n 3456.781 3457 EUR
89 de_DE.ISO-8859-1 %^#5.4n 123.45 123,4500 EUR
90 de_DE.ISO-8859-1 %^#5.4n -123.45 - 123,4500 EUR
91 de_DE.ISO-8859-1 %^#5.4n 3456.781 3456,7810 EUR
92 de_DE.ISO-8859-1 %(#5n 123.45 123,45 EUR
93 de_DE.ISO-8859-1 %(#5n -123.45 ( 123,45 EUR)
94 de_DE.ISO-8859-1 %(#5n 3456.781 3.456,78 EUR
95 de_DE.ISO-8859-1 %!(#5n 123.45 123,45
96 de_DE.ISO-8859-1 %!(#5n -123.45 ( 123,45)
97 de_DE.ISO-8859-1 %!(#5n 3456.781 3.456,78
99 # check both the en_US locale and strfmon with that data
100 # a lot of this checks are created from a strfmon(3) man-page.
102 en_US.ISO-8859-1 %n 123.45 $123.45
103 en_US.ISO-8859-1 %n -123.45 -$123.45
104 en_US.ISO-8859-1 %n 3456.781 $3,456.78
105 en_US.ISO-8859-1 %i 123.45 USD 123.45
106 en_US.ISO-8859-1 %i -123.45 -USD 123.45
107 en_US.ISO-8859-1 %i 3456.781 USD 3,456.78
108 en_US.ISO-8859-1 %11n 123.45 $123.45
109 en_US.ISO-8859-1 %11n -123.45 -$123.45
110 en_US.ISO-8859-1 %11n 3456.781 $3,456.78
111 en_US.ISO-8859-1 %=*#5n 123.45 $***123.45
112 en_US.ISO-8859-1 %=*#5n -123.45 -$***123.45
113 en_US.ISO-8859-1 %=*#5n 3456.781 $*3,456.78
114 en_US.ISO-8859-1 %=0#5n 123.45 $000123.45
115 en_US.ISO-8859-1 %=0#5n -123.45 -$000123.45
116 en_US.ISO-8859-1 %=0#5n 3456.781 $03,456.78
117 en_US.ISO-8859-1 %^#5n 123.45 $ 123.45
118 en_US.ISO-8859-1 %^#5n -123.45 -$ 123.45
119 en_US.ISO-8859-1 %^#5n 3456.781 $ 3456.78
120 en_US.ISO-8859-1 %^#5.0n 123.45 $ 123
121 en_US.ISO-8859-1 %^#5.0n -123.45 -$ 123
122 en_US.ISO-8859-1 %^#5.0n 3456.781 $ 3457
123 en_US.ISO-8859-1 %^#5.4n 123.45 $ 123.4500
124 en_US.ISO-8859-1 %^#5.4n -123.45 -$ 123.4500
125 en_US.ISO-8859-1 %^#5.4n 3456.781 $ 3456.7810
126 en_US.ISO-8859-1 %(#5n 123.45 $ 123.45
127 en_US.ISO-8859-1 %(#5n -123.45 ($ 123.45)
128 en_US.ISO-8859-1 %(#5n 3456.781 $ 3,456.78
129 en_US.ISO-8859-1 %!(#5n 123.45 123.45
130 en_US.ISO-8859-1 %!(#5n -123.45 ( 123.45)
131 en_US.ISO-8859-1 %!(#5n 3456.781 3,456.78
132 en_US.ISO-8859-1 %#5n 123.45 $ 123.45
133 en_US.ISO-8859-1 %#5n -123.45 -$ 123.45
134 en_US.ISO-8859-1 %#5n 3456.781 $ 3,456.78
136 # check all cs_precedes/sign_posn/sep_by_space combinations using
137 # special test locales. The six characters after the "_" indicate
138 # these three values for positive and then negative quantities.
140 tstfmon_n01y12 %n 123.45 123.45 $
141 tstfmon_n01y12 %n -123.45 - $123.45
142 tstfmon_n01y12 %11n 123.45 123.45 $
143 tstfmon_n01y12 %11n -123.45 - $123.45
144 tstfmon_n01y12 %^=*#5n 123.45 **123.45 $
145 tstfmon_n01y12 %^=*#5n -123.45 - $**123.45
147 tstfmon_n02n40 %n 123.45 123.45$
148 tstfmon_n02n40 %n -123.45 123.45$-
149 tstfmon_n02n40 %11n 123.45 123.45$
150 tstfmon_n02n40 %11n -123.45 123.45$-
151 tstfmon_n02n40 %^=*#5n 123.45 **123.45$
152 tstfmon_n02n40 %^=*#5n -123.45 **123.45$-
154 tstfmon_n10y31 %n 123.45 +123.45$
155 tstfmon_n10y31 %n -123.45 -$ 123.45
156 tstfmon_n10y31 %11n 123.45 +123.45$
157 tstfmon_n10y31 %11n -123.45 -$ 123.45
158 tstfmon_n10y31 %^=*#5n 123.45 +**123.45$
159 tstfmon_n10y31 %^=*#5n -123.45 -$ **123.45
161 tstfmon_n11y41 %n 123.45 +123.45 $
162 tstfmon_n11y41 %n -123.45 $- 123.45
163 tstfmon_n11y41 %11n 123.45 +123.45 $
164 tstfmon_n11y41 %11n -123.45 $- 123.45
165 tstfmon_n11y41 %^=*#5n 123.45 +**123.45 $
166 tstfmon_n11y41 %^=*#5n -123.45 $- **123.45
168 tstfmon_n12y11 %n 123.45 +123.45$
169 tstfmon_n12y11 %n -123.45 -$ 123.45
170 tstfmon_n12y11 %11n 123.45 +123.45$
171 tstfmon_n12y11 %11n -123.45 -$ 123.45
172 tstfmon_n12y11 %^=*#5n 123.45 +**123.45$
173 tstfmon_n12y11 %^=*#5n -123.45 -$ **123.45
175 tstfmon_n20n32 %n 123.45 123.45$+
176 tstfmon_n20n32 %n -123.45 123.45- $
177 tstfmon_n20n32 %11n 123.45 123.45$+
178 tstfmon_n20n32 %11n -123.45 123.45- $
179 tstfmon_n20n32 %^=*#5n 123.45 **123.45$+
180 tstfmon_n20n32 %^=*#5n -123.45 **123.45- $
182 tstfmon_n30y20 %n 123.45 123.45+$
183 tstfmon_n30y20 %n -123.45 $123.45-
184 tstfmon_n30y20 %11n 123.45 123.45+$
185 tstfmon_n30y20 %11n -123.45 $123.45-
186 tstfmon_n30y20 %^=*#5n 123.45 **123.45+$
187 tstfmon_n30y20 %^=*#5n -123.45 $**123.45-
189 tstfmon_n41n00 %n 123.45 123.45 $+
190 tstfmon_n41n00 %n -123.45 (123.45$)
191 tstfmon_n41n00 %11n 123.45 123.45 $+
192 tstfmon_n41n00 %11n -123.45 (123.45$)
193 tstfmon_n41n00 %^=*#5n 123.45 **123.45 $+
194 tstfmon_n41n00 %^=*#5n -123.45 (**123.45$)
196 tstfmon_y01y10 %n 123.45 $ 123.45
197 tstfmon_y01y10 %n -123.45 -$123.45
198 tstfmon_y01y10 %11n 123.45 $ 123.45
199 tstfmon_y01y10 %11n -123.45 -$123.45
200 tstfmon_y01y10 %^=*#5n 123.45 $ **123.45
201 tstfmon_y01y10 %^=*#5n -123.45 -$**123.45
203 tstfmon_y02n22 %n 123.45 $123.45
204 tstfmon_y02n22 %n -123.45 123.45$ O/D
205 tstfmon_y02n22 %12n 123.45 $123.45
206 tstfmon_y02n22 %12n -123.45 123.45$ O/D
207 tstfmon_y02n22 %^=*#5n 123.45 $**123.45
208 tstfmon_y02n22 %^=*#5n -123.45 **123.45$ O/D
210 tstfmon_y22n42 %n 123.45 $123.45+
211 tstfmon_y22n42 %n -123.45 123.45$ -
212 tstfmon_y22n42 %11n 123.45 $123.45+
213 tstfmon_y22n42 %11n -123.45 123.45$ -
214 tstfmon_y22n42 %^=*#5n 123.45 $**123.45+
215 tstfmon_y22n42 %^=*#5n -123.45 **123.45$ -
217 tstfmon_y30y21 %n 123.45 +$123.45
218 tstfmon_y30y21 %n -123.45 $ 123.45-
219 tstfmon_y30y21 %11n 123.45 +$123.45
220 tstfmon_y30y21 %11n -123.45 $ 123.45-
221 tstfmon_y30y21 %^=*#5n 123.45 +$**123.45
222 tstfmon_y30y21 %^=*#5n -123.45 $ **123.45-
224 tstfmon_y32n31 %n 123.45 + $123.45
225 tstfmon_y32n31 %n -123.45 123.45 -$
226 tstfmon_y32n31 %11n 123.45 + $123.45
227 tstfmon_y32n31 %11n -123.45 123.45 -$
228 tstfmon_y32n31 %^=*#5n 123.45 + $**123.45
229 tstfmon_y32n31 %^=*#5n -123.45 **123.45 -$
231 tstfmon_y40y00 %n 123.45 $+123.45
232 tstfmon_y40y00 %n -123.45 ($123.45)
233 tstfmon_y40y00 %11n 123.45 $+123.45
234 tstfmon_y40y00 %11n -123.45 ($123.45)
235 tstfmon_y40y00 %^=*#5n 123.45 $+**123.45
236 tstfmon_y40y00 %^=*#5n -123.45 ($**123.45)
238 tstfmon_y42n21 %n 123.45 $ +123.45
239 tstfmon_y42n21 %n -123.45 123.45 $-
240 tstfmon_y42n21 %11n 123.45 $ +123.45
241 tstfmon_y42n21 %11n -123.45 123.45 $-
242 tstfmon_y42n21 %^=*#5n 123.45 $ +**123.45
243 tstfmon_y42n21 %^=*#5n -123.45 **123.45 $-
245 # check all int_cs_precedes/int_sign_posn/int_sep_by_space
246 # combinations using special test locales. The six characters after
247 # the "_" indicate these three values for positive and then negative
250 tstfmon_n01y12 %i 123.45 "123.45 USC"
251 tstfmon_n01y12 %i -123.45 "- USC123.45"
252 tstfmon_n01y12 %13i 123.45 " 123.45 USC"
253 tstfmon_n01y12 %13i -123.45 " - USC123.45"
254 tstfmon_n01y12 %^=*#5i 123.45 " **123.45 USC"
255 tstfmon_n01y12 %^=*#5i -123.45 "- USC**123.45"
257 tstfmon_n02n40 %i 123.45 "123.45USC"
258 tstfmon_n02n40 %i -123.45 "123.45USC-"
259 tstfmon_n02n40 %13i 123.45 " 123.45USC"
260 tstfmon_n02n40 %13i -123.45 " 123.45USC-"
261 tstfmon_n02n40 %^=*#5i 123.45 "**123.45USC"
262 tstfmon_n02n40 %^=*#5i -123.45 "**123.45USC-"
264 tstfmon_n10y31 %i 123.45 "+123.45USC"
265 tstfmon_n10y31 %i -123.45 "-USC 123.45"
266 tstfmon_n10y31 %13i 123.45 " +123.45USC"
267 tstfmon_n10y31 %13i -123.45 " -USC 123.45"
268 tstfmon_n10y31 %^=*#5i 123.45 " +**123.45USC"
269 tstfmon_n10y31 %^=*#5i -123.45 "-USC **123.45"
271 tstfmon_n11y41 %i 123.45 "+123.45 USC"
272 tstfmon_n11y41 %i -123.45 "USC- 123.45"
273 tstfmon_n11y41 %13i 123.45 " +123.45 USC"
274 tstfmon_n11y41 %13i -123.45 " USC- 123.45"
275 tstfmon_n11y41 %^=*#5i 123.45 " +**123.45 USC"
276 tstfmon_n11y41 %^=*#5i -123.45 "USC- **123.45"
278 tstfmon_n12y11 %i 123.45 "+123.45USC"
279 tstfmon_n12y11 %i -123.45 "-USC 123.45"
280 tstfmon_n12y11 %13i 123.45 " +123.45USC"
281 tstfmon_n12y11 %13i -123.45 " -USC 123.45"
282 tstfmon_n12y11 %^=*#5i 123.45 " +**123.45USC"
283 tstfmon_n12y11 %^=*#5i -123.45 "-USC **123.45"
285 tstfmon_n20n32 %i 123.45 "123.45USC+"
286 tstfmon_n20n32 %i -123.45 "123.45- USC"
287 tstfmon_n20n32 %13i 123.45 " 123.45USC+"
288 tstfmon_n20n32 %13i -123.45 " 123.45- USC"
289 tstfmon_n20n32 %^=*#5i 123.45 "**123.45USC+"
290 tstfmon_n20n32 %^=*#5i -123.45 "**123.45- USC"
292 tstfmon_n30y20 %i 123.45 "123.45+USC"
293 tstfmon_n30y20 %i -123.45 "USC123.45-"
294 tstfmon_n30y20 %13i 123.45 " 123.45+USC"
295 tstfmon_n30y20 %13i -123.45 " USC123.45-"
296 tstfmon_n30y20 %^=*#5i 123.45 " **123.45+USC"
297 tstfmon_n30y20 %^=*#5i -123.45 "USC**123.45-"
299 tstfmon_n41n00 %i 123.45 "123.45 USC+"
300 tstfmon_n41n00 %i -123.45 "(123.45USC)"
301 tstfmon_n41n00 %13i 123.45 " 123.45 USC+"
302 tstfmon_n41n00 %13i -123.45 " (123.45USC)"
303 tstfmon_n41n00 %^=*#5i 123.45 " **123.45 USC+"
304 tstfmon_n41n00 %^=*#5i -123.45 "(**123.45USC)"
306 tstfmon_y01y10 %i 123.45 "USC 123.45"
307 tstfmon_y01y10 %i -123.45 "-USC123.45"
308 tstfmon_y01y10 %13i 123.45 " USC 123.45"
309 tstfmon_y01y10 %13i -123.45 " -USC123.45"
310 tstfmon_y01y10 %^=*#5i 123.45 "USC **123.45"
311 tstfmon_y01y10 %^=*#5i -123.45 "-USC**123.45"
313 tstfmon_y02n22 %i 123.45 "USC123.45"
314 tstfmon_y02n22 %i -123.45 "123.45USC O/D"
315 tstfmon_y02n22 %12i 123.45 " USC123.45"
316 tstfmon_y02n22 %12i -123.45 "123.45USC O/D"
317 tstfmon_y02n22 %^=*#5i 123.45 "USC**123.45"
318 tstfmon_y02n22 %^=*#5i -123.45 " **123.45USC O/D"
320 tstfmon_y22n42 %i 123.45 "USC123.45+"
321 tstfmon_y22n42 %i -123.45 "123.45USC -"
322 tstfmon_y22n42 %13i 123.45 " USC123.45+"
323 tstfmon_y22n42 %13i -123.45 " 123.45USC -"
324 tstfmon_y22n42 %^=*#5i 123.45 "USC**123.45+"
325 tstfmon_y22n42 %^=*#5i -123.45 " **123.45USC -"
327 tstfmon_y30y21 %i 123.45 "+USC123.45"
328 tstfmon_y30y21 %i -123.45 "USC 123.45-"
329 tstfmon_y30y21 %13i 123.45 " +USC123.45"
330 tstfmon_y30y21 %13i -123.45 " USC 123.45-"
331 tstfmon_y30y21 %^=*#5i 123.45 "+USC**123.45"
332 tstfmon_y30y21 %^=*#5i -123.45 "USC **123.45-"
334 tstfmon_y32n31 %i 123.45 "+ USC123.45"
335 tstfmon_y32n31 %i -123.45 "123.45 -USC"
336 tstfmon_y32n31 %13i 123.45 " + USC123.45"
337 tstfmon_y32n31 %13i -123.45 " 123.45 -USC"
338 tstfmon_y32n31 %^=*#5i 123.45 "+ USC**123.45"
339 tstfmon_y32n31 %^=*#5i -123.45 " **123.45 -USC"
341 tstfmon_y40y00 %i 123.45 "USC+123.45"
342 tstfmon_y40y00 %i -123.45 "(USC123.45)"
343 tstfmon_y40y00 %13i 123.45 " USC+123.45"
344 tstfmon_y40y00 %13i -123.45 " (USC123.45)"
345 tstfmon_y40y00 %^=*#5i 123.45 "USC+**123.45"
346 tstfmon_y40y00 %^=*#5i -123.45 "(USC**123.45)"
348 tstfmon_y42n21 %i 123.45 "USC +123.45"
349 tstfmon_y42n21 %i -123.45 "123.45 USC-"
350 tstfmon_y42n21 %13i 123.45 " USC +123.45"
351 tstfmon_y42n21 %13i -123.45 " 123.45 USC-"
352 tstfmon_y42n21 %^=*#5i 123.45 "USC +**123.45"
353 tstfmon_y42n21 %^=*#5i -123.45 " **123.45 USC-"