Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(210)

Side by Side Diff: source/test/testdata/numberformattestspecification.txt

Issue 1621843002: ICU 56 update step 1 (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/icu.git@561
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « source/test/testdata/iscii.bin ('k') | source/test/testdata/rbbitst.txt » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (C) 2015, International Business Machines
2 // Corporation and others. All Rights Reserved.
3 //
4 // This file is divided into test suites separated by whitespace. Each test
5 // suite starts with the name of the test followed by global field settings
6 // for that test suite. After the global settings, comes "begin", the
7 // per-test field names, and finally the test specific field values, 1 test
8 // per line.
9 // For more information on the format of this file, including all the available
10 // field names, please see
11 // https://docs.google.com/document/d/1T2P0p953_Lh1pRwo-5CuPVrHlIBa_wcXElG-Hhg_W HM/edit?usp=sharing
12
13 test plus sign
14 set locale ar
15 set pattern +0;-#
16 begin
17 format output breaks
18 6 \u200F+\u0666 JK
19 -6 \u200F-\u0666 JK
20
21 test basic patterns
22 set locale fr_FR
23 set format 1234.567
24 begin
25 pattern output
26 #,##0.## 1\u00a0234,57
27 0.## 1234,57
28 0 1235
29 #,##0.### 1\u00a0234,567
30 ###0.###### 1234,567
31 ###0.0000# 1234,5670
32 00000.0000 01234,5670
33 #,##0.00 \u00a4 1\u00a0234,57 \u20ac
34 'tick''bitten '0.00 tick'bitten 1234,57
35 'tick' 'bitten '0.00 tick bitten 1234,57
36
37
38 test minimum and maximum fraction digits
39 set locale en
40 set minIntegerDigits 2
41 set maxIntegerDigits 4
42 set minFractionDigits 3
43 set maxFractionDigits 5
44 begin
45 format output
46 6 06.000
47 6.000005 06.000
48 6.000006 06.00001
49 1002003004005 4005.000
50 -1002003004005 -4005.000
51 12 12.000
52 12345 2345.000
53 72.1234 72.1234
54
55 test int64
56 set locale en
57 begin
58 format output
59 1002003004005 1002003004005
60 -1002003004005 -1002003004005
61
62 test rounding
63 set locale fr
64 begin
65 pattern format output breaks
66 0.5 1.25 1,0 K
67 0.5 1.75 2,0 K
68 0.5 -1.25 -1,0 K
69 00.5 -1.75 -02,0 K
70 4 2.0 0 K
71 4 6.0 8 K
72 4 10.0 8 K
73 2.70 99.0 99,90 K
74 2.73 272.0 273,00 K
75 #,#3.70 104.0 1\u00a003,60 K
76
77 test significant digits
78 set locale en
79 set pattern #,#@,@###
80 begin
81 format output breaks
82 7 7.0 K
83 23 23 K
84 100 100 K
85 1000 1000 K
86 10000 1,0000 K
87 10001 1,0001 K
88 10001.5 1,0002 K
89 1234567 1,23,4600 K
90 -1234567 -1,23,4600 K
91 3.14159 3.1416 K
92
93 test scientific notation
94 set locale fr
95 begin
96 pattern format output breaks
97 0.00E0 12345 1,23E4
98 000.00E0 12300 123,00E2
99 000.0#E0 12300 123,0E2
100 000.0#E0 12300.1 123,0E2
101 000.0#E0 12301.0 123,01E2
102 // JDK does not support exponent signs
103 000.0#E+00 12301.0 123,01E+02 K
104 // JDK gives 12,345E3. JDK seems to include the hashes in significant digits
105 ##0.00E0 12345 12,3E3 K
106 // JDK gives 12,3001E3
107 ##0.0000E0 12300.1 12,300E3 K
108 // JDK gives 12,3001E3
109 ##0.000#E0 12300.1 12,30E3 K
110 ##0.000#E0 12301 12,301E3
111 0.05E0 12301.2 1,25E4 JK
112 ##0.000#E0 0.17 170,0E-3
113 // JDK doesn't support significant digits in exponents
114 @@@E0 6235 6,24E3 K
115 @@@#E0 6200 6,20E3 K
116 @@@#E0 6201 6,201E3 K
117 @@@#E0 6201.7 6,202E3 K
118 @@@#E00 6201.7 6,202E03 K
119 @@@#E+00 6201.7 6,202E+03 K
120
121 test percents
122 set locale fr
123 begin
124 pattern format output breaks
125 0.0% 0.573 57,3%
126 %0.0 0.573 %57,3
127 p%p0.0 0.573 p%p57,3
128 p'%'p0.0 0.573 p%p0,6
129 %@@@@ 0.0326 %3,260 K
130 %#,@@@ 15.43 %1\u00a0540 K
131 // JDK does not support rounding increments
132 %#,##4.1 16.55 %1\u00a0656,4 K
133 // JDK gives %16,255E3
134 %##0.00E0 162.55 %16,3E3 K
135
136 test permille
137 set locale fr
138 begin
139 pattern format output breaks
140 0.0\u2030 0.573 573,0‰
141 \u20300.0 0.573 \u2030573,0
142 p\u2030p0.0 0.573 p\u2030p573,0
143 p'\u2030'p0.0 0.573 p\u2030p0,6
144 \u2030@@@@ 0.0326 \u203032,60 K
145 \u2030#,@@@ 15.43 \u203015\u00a0400 K
146 \u2030#,##4.1 16.55 \u203016\u00a0551,7 K
147 // JDK gives \u2030162,55E3
148 \u2030##0.00E0 162.55 \u2030163E3 K
149
150 test padding
151 set locale fr_FR
152 begin
153 pattern format output breaks
154 // JDK does not seem to support padding
155 $**####,##0 1234 $***1\u00a0234 K
156 *x$####,##0 1234 xxx$1\u00a0234 K
157 ####,##0*x$ 1234 1\u00a0234xxx$ K
158 ####,##0$*x 1234 1\u00a0234$xxx K
159 // JDK doesn't seem to handle suffixes correctly dropping the 'nx' entirely
160 ####,##0$*x;ne#n -1234 ne1\u00a0234nx K
161 ####,##0$*x;n#'*' -1234 n1\u00a0234*xx K
162 *y%4.2###### 4.33 yyyy%432,6 K
163 // In J ICU adds padding as if 'EUR' is only 2 chars (2 * 0xa4)
164 \u00a4\u00a4 **####0.00 433.0 EUR *433,00 JK
165 // In J ICU adds padding as if 'EUR' is only 2 chars (2 * 0xa4)
166 \u00a4\u00a4 **#######0 433.0 EUR *433,00 JK
167
168 test padding and currencies
169 begin
170 locale currency pattern format output breaks
171 // In J, JPY is considered 2 char (2 * 0xa4) even though padding is done
172 // after prefix. In C this test works.
173 fr JPY \u00a4\u00a4 **#######0 433.22 JPY ****433 JK
174 // JDK doesn't correct rounding for currency, shows USD (433
175 en USD \u00a4\u00a4 **#######0;\u00a4\u00a4 (#) -433.22 USD (433 .22) K
176
177 test currencies
178 set locale fr
179 set format 1234.567
180 begin
181 pattern currency output breaks
182 // JDK gives shows EUR instead of the euro symbol in this case
183 #,##0.00 \u00a4 EUR 1\u00a0234,57 \u20ac K
184 // JDK gives 1\u00A0234,57. JDK doesn't seem to correct rounding
185 // based on currency.
186 #,##0.00 \u00a4 JPY 1\u00a0235 JPY K
187
188 test prefixes and suffixes
189 set locale en
190 set pattern 0.00+;(#)
191 begin
192 format output breaks
193 7 7.00+
194 // JDK does not support negative suffixes
195 -3.5 (3.50) K
196
197 test minimum grouping digits
198 set locale en
199 set pattern #,##0
200 set minGroupingDigits 2
201 begin
202 format output breaks
203 // min grouping digits not supported in any existing implementation
204 // but could be easily added to the new DecimalFormat C code.
205 1000 1000 JK
206 10000 10,000
207 100000 100,000
208 1000000 1,000,000
209
210 test min max fraction digits
211 set locale en
212 set pattern #,##0.###
213 set format 1234.567
214 begin
215 minFractionDigits maxFractionDigits output
216 0 0 1,235
217 0 2 1,234.57
218 4 5 1,234.5670
219
220 test min max integer digits
221 set locale en
222 set pattern #,##0.###
223 set format 1234.567
224 begin
225 minIntegerDigits maxIntegerDigits output
226 0 0 .567
227 0 3 234.567
228 5 5 01,234.567
229
230 test min max fraction digits scientific
231 set locale en
232 set pattern #E0
233 set format 299792458.0
234 begin
235 minIntegerDigits maxIntegerDigits minFractionDigits maxFract ionDigits output breaks
236 // JDK gives .3E9 instead of unlimited precision.
237 0 1 0 0 2.99792458E8 K
238 1 1 0 0 3E8
239 // JDK gives E0 instead of allowing for unlimited precision
240 0 0 0 0 2.99792458E8 K
241 // JDK gives .299792E9
242 0 1 0 5 2.9979E8 K
243 // JDK gives 300E6
244 0 3 0 0 299.792458E6 K
245 // JDK gives 299.8E6 (maybe maxInt + maxFrac instead of minInt + maxFrac)?
246 0 3 0 1 300E6 K
247 // JDK gives 299.7925E6
248 2 3 0 4 299.792E6 K
249 // JDK gives 299.79246E6
250 2 3 0 5 299.7925E6 K
251 3 3 0 5 299.79246E6
252 3 3 0 4 299.7925E6
253 2 2 0 3 29.979E7
254 4 4 0 0 2998E5
255 0 0 1 5 .29979E9
256 // JDK gives E0
257 0 0 1 0 2.99792458E8 K
258 // JDK gives .2998E9
259 0 0 0 4 2.998E8 K
260 // JDK uses 8 + 6 for significant digits instead of 2 + 6
261 2 8 1 6 2.9979246E8 K
262 // Treat max int digits > 8 as being the same as min int digits.
263 // This behavior is not spelled out in the specification.
264 // JDK fails here because it tries to use 9 + 6 = 15 sig digits.
265 2 9 1 6 29.979246E7 K
266
267 test significant digits scientific
268 set locale en
269 set pattern #E0
270 set format 290000000.0
271 begin
272 minSigDigits maxSigDigits output breaks
273 0 1 3E8 K
274 0 2 2.9E8 K
275 0 3 2.9E8 K
276 1 1 3E8 K
277 1 2 2.9E8 K
278 1 3 2.9E8 K
279 2 2 2.9E8 K
280 2 3 2.9E8 K
281 3 3 2.90E8 K
282 3 4 2.90E8 K
283
284 test min max fraction digits scientific 2
285 set locale en
286 set pattern #E0
287 set format 29979245.0
288 begin
289 minIntegerDigits maxIntegerDigits minFractionDigits maxFract ionDigits output breaks
290 // JDK gives E0
291 0 0 0 0 2.9979245E7 K
292 // JDK gives .3E8
293 0 1 0 0 2.9979245E7 K
294 // JDK gives 2998E4.
295 0 4 0 0 2997.9245E4 K
296
297 test ticket 11524
298 set locale en
299 set pattern #,##0.###
300 begin
301 format maxIntegerDigits output
302 123 1 3
303 123 -2147483648 0
304 12345 1 5
305 12345 -2147483648 0
306 5.3 1 5.3
307 5.3 -2147483648 .3
308
309 test patterns with zero
310 set locale en
311 set format 0
312 begin
313 pattern output
314 #.# 0
315 #. 0.
316 .# .0
317 # 0
318 00.000E00 00.000E00
319 0.####E0 0E0
320 ##0.######E000 0E000
321
322 test significant digits manually set
323 set locale en_US
324 set pattern 0.0
325 set useSigDigits 1
326 set minSigDigits 3
327 set maxSigDigits 5
328 begin
329 format output breaks
330 0.0012 0.00120 K
331 0.00123 0.00123 K
332 0.001234 0.001234 K
333 0.0012345 0.0012345 K
334 0.00123456 0.0012346 K
335 -43 -43.0 K
336 -43.7 -43.7 K
337 -43.76 -43.76 K
338 -43.762 -43.762 K
339 -43.7626 -43.763 K
340
341 test grouping used setters
342 set locale en_US
343 set pattern #,##0
344 set format 12345
345 begin
346 output useGrouping
347 12,345
348 12,345 1
349 12345 0
350
351 test grouping setters
352 set locale en_US
353 set pattern 0
354 set format 123456789
355 set useGrouping 1
356 begin
357 output grouping breaks grouping2 minGroupingDigits
358 1,2345,6789 4
359 1,23,45,6789 4 K 2
360 1,23,45,6789 4 K 2 2
361 123,456789 6 K 6 3
362 123456789 6 JK 6 4
363
364 test multiplier setters
365 set locale en_US
366 begin
367 format multiplier output breaks
368 23 -12 -276
369 23 -1 -23
370 // ICU4J and JDK throw exception on zero multiplier. ICU4C does not.
371 23 0 23 JK
372 23 1 23
373 23 12 276
374 -23 12 -276
375 -23 -12 276
376
377 test rounding setters
378 set locale en_US
379 set pattern 0.0#
380 set roundingIncrement 0.25
381 begin
382 format output breaks
383 -0.35 -0.25 K
384 0.35 0.25 K
385 0.39 0.5 K
386 0.62 0.5 K
387 0.63 0.75 K
388
389 test padding setters
390 set locale en_US
391 set pattern bill0
392 set format 1357
393 begin
394 padCharacter formatWidth output breaks
395 * 8 bill1357 K
396 * 9 *bill1357 K
397 ^ 10 ^^bill1357 K
398
399 test use scientific setter
400 set locale en_US
401 set pattern 0.00
402 set format 186283
403 begin
404 output breaks useScientific
405 186283.00
406 1.86E5 K 1
407 186283.00 K 0
408
409 test rounding mode setters
410 set locale en_US
411 set pattern 0.#
412 set roundingIncrement 0.5
413 begin
414 format roundingMode output breaks
415 1.24 halfUp 1 K
416 1.25 halfUp 1.5 K
417 1.25 halfDown 1 K
418 1.26 halfDown 1.5 K
419 1.25 halfEven 1 K
420 -1.01 up -1.5 K
421 -1.49 down -1 K
422 1.01 up 1.5 K
423 1.49 down 1 K
424 -1.01 ceiling -1 K
425 -1.49 floor -1.5 K
426
427 test currency usage setters
428 // TODO: Find a country and currency where standard and cash differ
429 set locale CH
430 set currency CHF
431 set pattern \u00a4\u00a4 0
432 begin
433 format currencyUsage output breaks
434 0.37 standard CHF 0.37 K
435 // TODO: Get the rounding data into ICU4C and ICU4J
436 0.37 cash CHF 0.35 CJK
437
438 test exponent parameter setters
439 set locale en_US
440 set pattern 0.##E0
441 set format 299792458
442 begin
443 decimalSeparatorAlwaysShown exponentSignAlwaysShown minimumExponentDigits output breaks
444 0 0 2 3E08 K
445 0 1 3 3E+008 K
446 // ICU DecimalFormat J does not honor decimalSeparatorAlwaysShown
447 // for scientific notation. But JDK DecimalFormat does honor
448 // decimalSeparatorAlwaysShown K=JDK; C=ICU4C; J=ICU4J
449 // See ticket 11621
450 1 0 2 3.E08 JK
451 1 1 3 3.E+008 JK
452 1 0 1 3.E8 J
453 0 0 1 3E8
454
455 test exponent decimalSeparatorAlwaysShown default
456 set locale en_US
457 set pattern 0.##E0
458 begin
459 format output breaks decimalSeparatorAlwaysShown
460 // decimalSeparatorAlwaysShown off by default
461 299792458 3E8
462 299000000 2.99E8
463 299792458 3.E8 J 1
464
465 test pad position setters
466 set locale en_US
467 set pattern **[#####0.##];((#))
468 begin
469 format padPosition output breaks
470 12.34 beforePrefix ****[12.34] K
471 12.34 afterPrefix [****12.34] K
472 12.34 beforeSuffix [12.34****] K
473 12.34 afterSuffix [12.34]**** K
474 -12.34 beforePrefix **((12.34)) K
475 -12.34 afterPrefix ((**12.34)) K
476 -12.34 beforeSuffix ((12.34**)) K
477 -12.34 afterSuffix ((12.34))** K
478
479 test affix setters
480 set locale fr_FR
481 set currency EUR
482 set pattern 0.00
483 begin
484 format positivePrefix positiveSuffix negativePrefix negativeSuffix output
485 12.34 % %12,34
486 12.34 \u00a4\u00a4 12,34\u00a4\u00a4
487 12.34 - + 12,34
488 -12.34 - + -12,34+
489 -12.34 \u00a4 \u00a412,34
490 12.34 \u00a4 12,34
491 -12.34 % 12,34%
492 12.34 % 12,34
493
494 test more affix setters
495 set locale fr_FR
496 set pattern %0.00
497 begin
498 format positivePrefix negativePrefix output
499 0.648 booya cooya booya64,80
500
501 test nan and infinity
502 set locale en_US
503 set pattern [0.00];(#)
504 begin
505 format output breaks
506 Inf [\u221e] K
507 -Inf (\u221e) K
508 NaN NaN K
509
510 test nan and infinity with multiplication
511 set locale en
512 set multiplier 100
513 begin
514 format output breaks
515 Inf \u221e
516 -Inf -\u221e
517 NaN NaN K
518
519 test nan and infinity with padding
520 set locale en_US
521 set pattern $$$0.00$
522 set formatWidth 7
523 begin
524 format padPosition output breaks
525 Inf beforePrefix $$$\u221e$ K
526 Inf afterPrefix $$$ \u221e$ K
527 Inf beforeSuffix $$$\u221e $ K
528 Inf afterSuffix $$$\u221e$ K
529 NaN beforePrefix NaN K
530 NaN afterPrefix NaN K
531 NaN beforeSuffix NaN K
532 NaN afterSuffix NaN K
533
534 test apply localized patterns
535 begin
536 locale localizedPattern format output breaks
537 en 0% 0.4376 44%
538 // This next test breaks JDK. JDK doesn't multiply by 100.
539 fa \u06f0\u066a 0.4376 \u06f4\u06f4\u066a K
540
541 test toPattern
542 set locale en
543 begin
544 pattern toPattern breaks
545 // JDK doesn't support any patterns with padding or both negative prefix and suf fix
546 // Breaks ICU4J See ticket 11671
547 **0,000 **0,000 JK
548 **##0,000 **##0,000 K
549 **###0,000 **###0,000 K
550 **####0,000 **#,##0,000 K
551 ###,000. #,000.
552 0,000 #0,000
553 .00 #.00
554 000 #000
555 000,000 #,000,000
556 pp#,000 pp#,000
557 00.## #00.##
558 #,#00.025 #,#00.025
559 // No secondary grouping in JDK
560 #,##,###.02500 #,##,###.02500 K
561 pp#,000;(#) pp#,000;(#,000) K
562 **####,##,##0.0##;(#) **#,##,##,##0.0##;**(##,##,##0.0##) K
563 // No significant digits in JDK
564 @@### @@### K
565 @,@#,### @,@#,### K
566 0.00E0 0.00E0
567 @@@##E0 @@@##E0 K
568 ###0.00#E0 ###0.00#E0
569 ##00.00#E0 ##00.00#E0
570 0.00E+00 0.00E+00 K
571 000.00E00 000.00E00
572 ###0.00#E00 ###0.00#E00
573
574 test parse
575 set locale en
576 set pattern +#,##0.0###;(#)
577 begin
578 parse output breaks
579 +5,347.25 5347.25
580 +5,347,.25 5347.25
581 +5,347, 5347
582 +5347,,, 5347
583 +5347,,,d8 5347
584 (5,347.25) -5347.25
585 // J requires prefix and suffix for lenient parsing, but C doesn't
586 5,347.25 5347.25 JK
587 (5,347.25 -5347.25 J
588 -5,347.25 fail
589 +3.52E4 35200
590 (34.8E-3) -0.0348
591 // JDK stops parsing at the spaces. JDK doesn't see space as a grouping separato r
592 (34 25E-1) -342.5 K
593 (34,,25E-1) -342.5
594 // J doesn't allow trailing separators before E but C does
595 (34,,25,E-1) -342.5 J
596 (34 25 E-1) -342.5 JK
597 (34,,25 E-1) -3425 J
598 // Spaces are not allowed after exponent symbol
599 // C parses up to the E but J bails
600 (34 25E -1) -3425 JK
601 +3.52EE4 3.52
602 +1,234,567.8901 1234567.8901
603 +1,23,4567.8901 1234567.8901
604 +1,23,4567.89,01 1234567.89
605 +1,23,456.78.9 123456.78
606 +12.34,56 12.34
607 +79,,20,3 79203
608 +79 20 3 79203 K
609 // Parsing stops at comma as it is different from other separators
610 +79 20,3 7920 K
611 +79,,20 3 7920
612 + 79 79 K
613 +,79,,20,3 79203
614 +7920d3 7920
615 // Whitespace immediately after prefix doesn't count as digit separator
616 // in C but is does in J
617 + ,79,,20,3 79203 JK
618 ( 19 45) -1945 K
619 // C allows trailing separators when there is a prefix and suffix.
620 // J allows trailing separators only when there is just a prefix.
621 // In this case, J just bails
622 ( 19 45 ) -1945 JK
623 (,,19,45) -1945
624 // C parses to the space, but J bails
625 (,,19 45) -19 J
626 // J bails b/c comma different separator than space. C doesn't treat leading spa ces
627 // as a separator.
628 ( 19,45) -1945 JK
629 // J bails. Doesn't allow trailing separators when there is prefix and suffix.
630 (,,19,45,) -1945 J
631 // J bails on next 4 because J doesn't allow letters inside prefix and suffix.
632 // C will parse up to the letter.
633 (,,19,45,d1) -1945 J
634 (,,19,45d1) -1945 J
635 ( 19 45 d1) -1945 JK
636 ( 19 45d1) -1945 JK
637 // J does allow trailing separator before a decimal point
638 (19,45,.25) -1945.25
639 // 2nd decimal points are ignored
640 +4.12.926 4.12
641
642 test parse suffix
643 set locale en
644 set pattern #,##0.0###+;#-
645 begin
646 parse output breaks
647 // C sees this as -3426, don't understand why
648 3426 -3426 JK
649 3426+ 3426
650 // J bails, but JDK will parse up to the space and get 34.
651 // C sees -34
652 34 d1+ -34 JK
653 // JDK sees this as -1234 for some reason
654 // J bails b/c of trailing separators
655 // C parses until trailing separators, but sees -1234
656 1,234,,,+ -1234 JK
657 1,234- -1234
658 // J bails because of trailing separators
659 1,234,- -1234 J
660 // J bails here too
661 1234 - -1234 J
662
663
664
665 test parse strict
666 set locale en
667 set pattern +#,##0.0###;(#)
668 set lenient 0
669 begin
670 parse output breaks
671 +123d5 123
672 +5347.25 5347.25
673 // separators in wrong place cause failure, no separators ok.
674 +5,347.25 5347.25
675 (5347.25) -5347.25
676 (5,347.25) -5347.25
677 // JDK does allow separators in the wrong place and parses as -5347.25
678 (53,47.25) fail K
679 // strict requires prefix or suffix
680 5,347.25 fail
681 +3.52E4 35200
682 (34.8E-3) -0.0348
683 (3425E-1) -342.5
684 // Strict doesn't allow separators in sci notation.
685 (3,425) -3425
686 // JDK allows separators in sci notation and parses as -342.5
687 (3,425E-1) fail K
688 // Both prefix and suffix needed for strict.
689 // JDK accepts this and parses as -342.5
690 (3425E-1 fail K
691 +3.52EE4 3.52
692 +1,234,567.8901 1234567.8901
693 // With strict digit separators don't have to be the right type
694 // JDK doesn't acknowledge space as a separator
695 +1 234 567.8901 1234567.8901 K
696 // In general the grouping separators have to match their expected
697 // location exactly. The only exception is when string being parsed
698 // have no separators at all.
699 +1,234,567.8901 1234567.8901
700 // JDK doesn't require separators to be in the right place
701 +1,23,4567.8901 fail K
702 +1234,567.8901 fail K
703 +1,234567.8901 fail K
704 +1234567.8901 1234567.8901
705 // Comma after decimal means parse to a comma
706 +123,456.78,9 123456.78
707 // A decimal after a decimal means bail
708 // JDK parses as 123456.78
709 +123,456.78.9 fail K
710 +79 79
711 +79 79
712 + 79 fail
713 // JDK parses as -1945
714 (1,945d1) fail K
715
716 test parse integer only
717 set locale en
718 set pattern 0.00
719 set parseIntegerOnly 1
720 begin
721 parse output breaks
722 35 35
723 +35 fail
724 -35 -35
725 2.63 2
726 -39.99 -39
727
728 test parse no exponent flag
729 set pattern 0
730 set locale en
731 begin
732 parseNoExponent parse output breaks
733 // JDK doesn't allow lowercase exponent but ICU4J and ICU4C do.
734 0 5e2 500 K
735 0 5.3E2 530
736 // See ticket 11725
737 1 5e2 5 J
738 1 5.3E2 5.3 JK
739
740 test parse currency fail
741 set pattern 0
742 set locale en
743 begin
744 parse output outputCurrency breaks
745 // See ticket 11735
746 53.45 fail USD J
747
748 test parse strange prefix
749 set locale en
750 set positivePrefix dd
751 set negativePrefix ddd
752 begin
753 parse output
754 dd4582 4582
755 ddd4582 -4582
756
757 test parse strange suffix
758 set locale en
759 set positiveSuffix dd
760 set negativePrefix
761 set negativeSuffix ddd
762 begin
763 parse output
764 4582dd 4582
765 4582ddd -4582
766
767 test really strange suffix
768 set locale en
769 set positiveSuffix 9K
770 set negativePrefix
771 set negativeSuffix 9N
772 begin
773 parse output breaks
774 // C consumes the '9' as a digit and assumes number is negative
775 // J and JDK bail
776 // 6549K 654 CJK
777 // C consumes the '9' as a digit and assumes number is negative
778 // J and JDK bail
779 // 6549N -654 CJK
780
781 test really strange prefix
782 set locale en
783 set positivePrefix 82
784 set negativePrefix 28
785 begin
786 parse output
787 8245 45
788 2845 -45
789
790 test select
791 set locale sr
792 begin
793 format pattern plural
794 Inf 0 other
795 -Inf 0 other
796 NaN 0 other
797 Inf 0.0 other
798 -Inf 0.0 other
799 NaN 0.0 other
800 1 0 one
801 1 0.0 other
802 2 0 few
803 2 0.0 other
804 2 0E0 other
805 5.1 0.0 one
806 5.09 0.0 one
807
808 test parse currency ISO
809 set pattern 0.00 \u00a4\u00a4;(#) \u00a4\u00a4
810 set locale en_US
811 begin
812 parse output outputCurrency breaks
813 $53.45 53.45 USD
814 53.45 USD 53.45 USD
815 USD 53.45 53.45 USD J
816 53.45USD fail USD
817 USD53.45 53.45 USD
818 (7.92) USD -7.92 USD
819 (7.92) EUR -7.92 EUR
820 (7.926) USD -7.926 USD
821 (7.926 USD) fail USD
822 (USD 7.926) fail USD
823 USD (7.926) fail USD
824 USD (7.92) fail USD
825 (7.92)USD fail USD
826 USD(7.92) fail USD
827 (8) USD -8 USD
828 -8 USD fail USD
829 67 USD 67 USD
830 53.45$ fail USD
831 US Dollars 53.45 53.45 USD J
832 53.45 US Dollars 53.45 USD
833 US Dollar 53.45 53.45 USD J
834 53.45 US Dollar 53.45 USD
835 US Dollars53.45 53.45 USD
836 53.45US Dollars fail USD
837 US Dollar53.45 53.45 USD
838 US Dollat53.45 fail USD
839 53.45US Dollar fail USD
840 US Dollars (53.45) fail USD
841 (53.45) US Dollars -53.45 USD
842 US Dollar (53.45) fail USD
843 (53.45) US Dollar -53.45 USD
844 US Dollars(53.45) fail USD
845 (53.45)US Dollars fail USD
846 US Dollar(53.45) fail USD
847 US Dollat(53.45) fail USD
848 (53.45)US Dollar fail USD
849
850
851 test parse currency ISO negative
852 set pattern 0.00 \u00a4\u00a4;-# \u00a4\u00a4
853 set locale en_US
854 begin
855 parse output outputCurrency breaks
856 $53.45 53.45 USD
857 53.45 USD 53.45 USD
858 USD 53.45 53.45 USD J
859 53.45USD fail USD
860 USD53.45 53.45 USD
861 -7.92 USD -7.92 USD
862 -7.92 EUR -7.92 EUR
863 -7.926 USD -7.926 USD
864 USD -7.926 fail USD
865 -7.92USD fail USD
866 USD-7.92 fail USD
867 -8 USD -8 USD
868 67 USD 67 USD
869 53.45$ fail USD
870 US Dollars 53.45 53.45 USD J
871 53.45 US Dollars 53.45 USD
872 US Dollar 53.45 53.45 USD J
873 53.45 US Dollar 53.45 USD
874 US Dollars53.45 53.45 USD
875 53.45US Dollars fail USD
876 US Dollar53.45 53.45 USD
877 US Dollat53.45 fail USD
878 53.45US Dollar fail USD
879
880
881 test parse currency long
882 set pattern 0.00 \u00a4\u00a4\u00a4;(#) \u00a4\u00a4\u00a4
883 set locale en_US
884 begin
885 parse output outputCurrency breaks
886 $53.45 53.45 USD
887 53.45 USD 53.45 USD
888 USD 53.45 53.45 USD J
889 // See ticket 11735
890 53.45USD fail USD J
891 USD53.45 53.45 USD
892 (7.92) USD -7.92 USD
893 (7.926) USD -7.926 USD
894 (7.926 USD) fail USD
895 (USD 7.926) fail USD
896 USD (7.926) fail USD
897 USD (7.92) fail USD
898 (7.92)USD fail USD
899 USD(7.92) fail USD
900 (8) USD -8 USD
901 // See ticket 11735
902 -8 USD fail USD J
903 67 USD 67 USD
904 // See ticket 11735
905 53.45$ fail USD J
906 US Dollars 53.45 53.45 USD J
907 53.45 US Dollars 53.45 USD
908 US Dollar 53.45 53.45 USD J
909 53.45 US Dollar 53.45 USD
910 US Dollars53.45 53.45 USD
911 // See ticket 11735
912 53.45US Dollars fail USD J
913 US Dollar53.45 53.45 USD
914 US Dollat53.45 fail USD
915 // See ticket 11735
916 53.45US Dollar fail USD J
917
918
919 test parse currency short
920 set pattern 0.00 \u00a4;(#) \u00a4
921 set locale en_US
922 begin
923 parse output outputCurrency breaks
924 $53.45 53.45 USD
925 53.45 USD 53.45 USD
926 USD 53.45 53.45 USD J
927 53.45USD fail USD
928 USD53.45 53.45 USD
929 (7.92) USD -7.92 USD
930 (7.926) USD -7.926 USD
931 (7.926 USD) fail USD
932 (USD 7.926) fail USD
933 USD (7.926) fail USD
934 USD (7.92) fail USD
935 (7.92)USD fail USD
936 USD(7.92) fail USD
937 (8) USD -8 USD
938 -8 USD fail USD
939 67 USD 67 USD
940 53.45$ fail USD
941 US Dollars 53.45 53.45 USD J
942 53.45 US Dollars 53.45 USD
943 US Dollar 53.45 53.45 USD J
944 53.45 US Dollar 53.45 USD
945 US Dollars53.45 53.45 USD
946 53.45US Dollars fail USD
947 US Dollar53.45 53.45 USD
948 US Dollat53.45 fail USD
949 53.45US Dollar fail USD
950
951
952 test parse currency short prefix
953 set pattern \u00a40.00;(\u00a4#)
954 set locale en_US
955 begin
956 parse output outputCurrency breaks
957 $53.45 53.45 USD
958 53.45 USD fail USD
959 USD 53.45 53.45 USD J
960 53.45USD fail USD
961 USD53.45 53.45 USD
962 (7.92) USD fail USD
963 (7.926) USD fail USD
964 (7.926 USD) fail USD
965 (USD 7.926) -7.926 USD J
966 USD (7.926) fail USD
967 USD (7.92) fail USD
968 (7.92)USD fail USD
969 USD(7.92) fail USD
970 (8) USD fail USD
971 -8 USD fail USD
972 67 USD fail USD
973 53.45$ fail USD
974 US Dollars 53.45 53.45 USD J
975 53.45 US Dollars 53.45 USD
976 US Dollar 53.45 53.45 USD J
977 53.45 US Dollar 53.45 USD
978 US Dollars53.45 53.45 USD
979 53.45US Dollars fail USD
980 US Dollar53.45 53.45 USD
981 53.45US Dollar fail USD
982
983 test format foreign currency
984 set locale fa_IR
985 begin
986 pattern format output breaks
987 \u00a4\u00a4\u00a4 0.00;\u00a4\u00a4\u00a4 # 1235 \u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 \u06F1\u06F2\u06F3\u06F5 K
988 \u00a4\u00a4 0.00;\u00a4\u00a4 -# 1235 IRR \u06F1\u06F2\u06F3\u06F5 K
989 \u00a4 0.00;\u00a4 -# 1235 \u0631\u06cc\u0627\u0644 \u06F1\u06F2\u06F3\u06F 5 K
990
991 test parse foreign currency symbol
992 set pattern \u00a4 0.00;\u00a4 -#
993 set locale fa_IR
994 begin
995 parse output outputCurrency
996 \u0631\u06cc\u0627\u0644 \u06F1\u06F2\u06F3\u06F5 1235 IRR
997 IRR \u06F1\u06F2\u06F3\u06F5 1235 IRR
998 \u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 \u06F1\u06F2\u06F3\u06F5 1235 IRR
999 IRR 1235 1235 IRR
1000 \u0631\u06cc\u0627\u0644 1235 1235 IRR
1001 \u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 1235 1235 IRR
1002
1003 test parse foreign currency ISO
1004 set pattern \u00a4\u00a4 0.00;\u00a4\u00a4 -#
1005 set locale fa_IR
1006 begin
1007 parse output outputCurrency
1008 \u0631\u06cc\u0627\u0644 \u06F1\u06F2\u06F3\u06F5 1235 IRR
1009 IRR \u06F1\u06F2\u06F3\u06F5 1235 IRR
1010 \u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 \u06F1\u06F2\u06F3\u06F5 1235 IRR
1011 IRR 1235 1235 IRR
1012 \u0631\u06cc\u0627\u0644 1235 1235 IRR
1013 \u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 1235 1235 IRR
1014
1015 test parse foreign currency full
1016 set pattern \u00a4\u00a4\u00a4 0.00;\u00a4\u00a4\u00a4 -#
1017 set locale fa_IR
1018 begin
1019 parse output outputCurrency
1020 \u0631\u06cc\u0627\u0644 \u06F1\u06F2\u06F3\u06F5 1235 IRR
1021 IRR \u06F1\u06F2\u06F3\u06F5 1235 IRR
1022 \u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 \u06F1\u06F2\u06F3\u06F5 1235 IRR
1023 IRR 1235 1235 IRR
1024 \u0631\u06cc\u0627\u0644 1235 1235 IRR
1025 \u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 1235 1235 IRR
1026
1027 test parse currency with foreign symbols symbol english
1028 set pattern \u00a4 0.00;\u00a4 (#)
1029 set locale en_US
1030 begin
1031 parse output outputCurrency
1032 EUR 7.82 7.82 EUR
1033 \u20ac 7.82 7.82 EUR
1034 Euro 7.82 7.82 EUR
1035 Euros 7.82 7.82 EUR
1036
1037 test parse currency with foreign symbols ISO english
1038 set pattern \u00a4\u00a4 0.00;\u00a4\u00a4 (#)
1039 set locale en_US
1040 begin
1041 parse output outputCurrency
1042 EUR 7.82 7.82 EUR
1043 \u20ac 7.82 7.82 EUR
1044 Euro 7.82 7.82 EUR
1045 Euros 7.82 7.82 EUR
1046
1047 test parse currency with foreign symbols full english
1048 set pattern \u00a4\u00a4\u00a4 0.00;\u00a4\u00a4\u00a4 (#)
1049 set locale en_US
1050 begin
1051 parse output outputCurrency
1052 EUR 7.82 7.82 EUR
1053 \u20ac 7.82 7.82 EUR
1054 Euro 7.82 7.82 EUR
1055 Euros 7.82 7.82 EUR
1056
1057 test parse currency ISO strict
1058 set pattern 0.00 \u00a4\u00a4;(#) \u00a4\u00a4
1059 set locale en_US
1060 set lenient 0
1061 begin
1062 parse output outputCurrency breaks
1063 $53.45 53.45 USD
1064 53.45 USD 53.45 USD
1065 USD 53.45 fail USD
1066 53.45USD fail USD
1067 USD53.45 53.45 USD
1068 (7.92) USD -7.92 USD
1069 (7.92) EUR -7.92 EUR
1070 (7.926) USD -7.926 USD
1071 (7.926 USD) fail USD
1072 (USD 7.926) fail USD
1073 USD (7.926) fail USD
1074 USD (7.92) fail USD
1075 (7.92)USD fail USD
1076 USD(7.92) fail USD
1077 (8) USD -8 USD
1078 -8 USD fail USD
1079 67 USD 67 USD
1080 53.45$ fail USD
1081 US Dollars 53.45 fail USD
1082 53.45 US Dollars 53.45 USD
1083 US Dollar 53.45 fail USD
1084 53.45 US Dollar 53.45 USD
1085 US Dollars53.45 53.45 USD
1086 53.45US Dollars fail USD
1087 US Dollar53.45 53.45 USD
1088 US Dollat53.45 fail USD
1089 53.45US Dollar fail USD
1090 US Dollars (53.45) fail USD
1091 (53.45) US Dollars -53.45 USD
1092 US Dollar (53.45) fail USD
1093 (53.45) US Dollar -53.45 USD
1094 US Dollars(53.45) fail USD
1095 (53.45)US Dollars fail USD
1096 US Dollar(53.45) fail USD
1097 US Dollat(53.45) fail USD
1098 (53.45)US Dollar fail USD
1099
1100 test ticket 10436
1101 set locale en
1102 set roundingMode ceiling
1103 set minFractionDigits 0
1104 set maxFractionDigits 0
1105 begin
1106 format output breaks
1107 -0.99 -0 JK
1108
OLDNEW
« no previous file with comments | « source/test/testdata/iscii.bin ('k') | source/test/testdata/rbbitst.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698