From faa334fcee0e689f19052696c6609226b6efdfa3 Mon Sep 17 00:00:00 2001 From: Shane Carr Date: Thu, 17 May 2018 02:26:09 +0000 Subject: [PATCH] ICU-13740 Syncing numberformattestspecification.txt between C and J X-SVN-Rev: 41394 --- .../numberformattestspecification.txt | 46 ++- .../data/numberformattestspecification.txt | 333 +++++++++--------- 2 files changed, 207 insertions(+), 172 deletions(-) diff --git a/icu4c/source/test/testdata/numberformattestspecification.txt b/icu4c/source/test/testdata/numberformattestspecification.txt index 9f2ea192016..9c426a14f45 100644 --- a/icu4c/source/test/testdata/numberformattestspecification.txt +++ b/icu4c/source/test/testdata/numberformattestspecification.txt @@ -751,8 +751,8 @@ parse output breaks // JDK stops parsing at the spaces. JDK doesn't see space as a grouping separator (34 25E-1) -342.5 K (34,,25E-1) -342.5 -// J doesn't allow trailing separators before E -(34,,25,E-1) -342.5 CJ +// J doesn't allow trailing separators before E but C and P do +(34,,25,E-1) -342.5 CJP (34 25 E-1) -342.5 JK (34,,25 E-1) -342.5 JK // Spaces are not allowed after exponent symbol @@ -814,8 +814,8 @@ parse output breaks // J bails b/c of trailing separators 1,234,,,+ 1234 JK 1,234- -1234 -// J bails because of trailing separators -1,234,- -1234 CJ +// J, C, and P bail because of trailing separators +1,234,- -1234 CJP // J bails here too 1234 - -1234 J @@ -1031,7 +1031,7 @@ begin parse output outputCurrency breaks 53.45 fail GBP £53.45 53.45 GBP -$53.45 fail USD J +$53.45 fail USD JP 53.45 USD 53.45 USD 53.45 GBP 53.45 GBP USD 53.45 53.45 USD J @@ -1049,7 +1049,7 @@ USD(7.92) -7.92 USD J (8) USD -8 USD -8 USD -8 USD 67 USD 67 USD -53.45$ fail USD +53.45$ fail USD P US Dollars 53.45 53.45 USD J 53.45 US Dollars 53.45 USD US Dollar 53.45 53.45 USD J @@ -1078,7 +1078,7 @@ begin parse output outputCurrency breaks 53.45 fail GBP £53.45 53.45 GBP -$53.45 fail USD J +$53.45 fail USD JP 53.45 USD 53.45 USD 53.45 GBP 53.45 GBP USD 53.45 53.45 USD J @@ -1092,7 +1092,7 @@ USD -7.926 -7.926 USD J USD-7.92 -7.92 USD J -8 USD -8 USD 67 USD 67 USD -53.45$ fail USD +53.45$ fail USD P US Dollars 53.45 53.45 USD J 53.45 US Dollars 53.45 USD US Dollar 53.45 53.45 USD J @@ -1112,7 +1112,7 @@ parse output outputCurrency breaks // J throws a NullPointerException on the first case 53.45 fail GBP £53.45 53.45 GBP -$53.45 fail USD J +$53.45 fail USD JP 53.45 USD 53.45 USD 53.45 GBP 53.45 GBP USD 53.45 53.45 USD J @@ -1131,7 +1131,7 @@ USD(7.92) -7.92 USD J -8 USD -8 USD 67 USD 67 USD // J throws a NullPointerException on the next case -53.45$ fail USD +53.45$ fail USD P US Dollars 53.45 53.45 USD J 53.45 US Dollars 53.45 USD US Dollar 53.45 53.45 USD J @@ -1150,7 +1150,7 @@ begin parse output outputCurrency breaks 53.45 fail GBP £53.45 53.45 GBP -$53.45 fail USD J +$53.45 fail USD JP 53.45 USD 53.45 USD 53.45 GBP 53.45 GBP USD 53.45 53.45 USD J @@ -1168,7 +1168,7 @@ USD(7.92) -7.92 USD J (8) USD -8 USD -8 USD -8 USD 67 USD 67 USD -53.45$ fail USD +53.45$ fail USD P US Dollars 53.45 53.45 USD J 53.45 US Dollars 53.45 USD US Dollar 53.45 53.45 USD J @@ -1187,7 +1187,7 @@ begin parse output outputCurrency breaks 53.45 fail GBP £53.45 53.45 GBP -$53.45 fail USD J +$53.45 fail USD JP 53.45 USD 53.45 USD 53.45 GBP 53.45 GBP USD 53.45 53.45 USD J @@ -1206,7 +1206,7 @@ USD(7.92) -7.92 USD CJP (8) USD -8 USD CJP -8 USD -8 USD 67 USD 67 USD -53.45$ fail USD +53.45$ fail USD P US Dollars 53.45 53.45 USD J 53.45 US Dollars 53.45 USD US Dollar 53.45 53.45 USD J @@ -1622,6 +1622,24 @@ pattern lenient parse output breaks 0E0'.'x 1 5E3.x 5000 0E0'.'x 0 5E3.x 5000 +test parse lowercase currency +set locale en +set pattern ¤¤0 +set currency USD +begin +parse output outputCurrency breaks +USD123 123 USD +USD 123 123 USD J +usd123 123 USD +usd 123 123 USD J +Usd123 123 USD +Usd 123 123 USD J +US$123 123 USD +us$123 fail fail +Us$123 fail fail +123 US dollars 123 USD +123 US DOLLARS 123 USD +123 us dollars 123 USD diff --git a/icu4j/main/tests/core/src/com/ibm/icu/dev/data/numberformattestspecification.txt b/icu4j/main/tests/core/src/com/ibm/icu/dev/data/numberformattestspecification.txt index 74795b02d14..9c426a14f45 100644 --- a/icu4j/main/tests/core/src/com/ibm/icu/dev/data/numberformattestspecification.txt +++ b/icu4j/main/tests/core/src/com/ibm/icu/dev/data/numberformattestspecification.txt @@ -8,6 +8,15 @@ // for that test suite. After the global settings, comes "begin", the // per-test field names, and finally the test specific field values, 1 test // per line. +// +// Field names: +// J = ICU58 +// K = JDK +// C = ICU4C +// P = ICU4J parsing +// Q = ICU4J formatting +// S = ICU4J toPattern +// // For more information on the format of this file, including all the available // field names, please see // https://docs.google.com/document/d/1T2P0p953_Lh1pRwo-5CuPVrHlIBa_wcXElG-Hhg_WHM/edit?usp=sharing @@ -318,8 +327,8 @@ minIntegerDigits maxIntegerDigits minFractionDigits maxFractionDigits output bre 1 1 0 0 3E8 // JDK gives E0 instead of allowing for unlimited precision 0 0 0 0 2.99792458E8 K -// JDK gives .299792E9; Q gives 2.99792E8 -0 1 0 5 2.9979E8 KQ +// J gives 2.9979E8 +0 1 0 5 2.99792E8 J // JDK gives 300E6 0 3 0 0 299.792458E6 K // JDK gives 299.8E6 (maybe maxInt + maxFrac instead of minInt + maxFrac)? @@ -335,8 +344,8 @@ minIntegerDigits maxIntegerDigits minFractionDigits maxFractionDigits output bre 0 0 1 5 .29979E9 // JDK gives E0 0 0 1 0 2.99792458E8 K -// JDK and Q give .2998E9 -0 0 0 4 2.998E8 KQ +// J gives 2.998E8 +0 0 0 4 .29979E9 J // According to the spec, if maxInt>minInt and minInt>1, then set // Context: #13289 2 8 1 6 2.9979246E8 K @@ -381,13 +390,14 @@ set pattern #,##0.### begin format maxIntegerDigits output breaks 123 1 3 -0 0 0 -// Q ignores max integer if it is less than zero and prints "123" -123 -2147483648 0 Q +// C obeys maxIntegerDigits and prints after the decimal place +0 0 .0 Q +// C and Q ignore max integer if it is less than zero and prints "123" +123 -2147483648 0 CQ 12345 1 5 -12345 -2147483648 0 Q +12345 -2147483648 0 CQ 5.3 1 5.3 -5.3 -2147483648 .3 Q +5.3 -2147483648 .3 CQ test patterns with zero set locale en @@ -548,14 +558,13 @@ set locale en begin currency currencyUsage toPattern breaks // These work in J, but it prepends an extra hash sign to the pattern. -// C does not print the currency rounding information in the pattern. // K does not support this feature. -USD standard 0.00 CJK -CHF standard 0.00 CJK -CZK standard 0.00 CJK -USD cash 0.00 CJK -CHF cash 0.05 CJK -CZK cash 0 CJK +USD standard 0.00 JK +CHF standard 0.00 JK +CZK standard 0.00 JK +USD cash 0.00 JK +CHF cash 0.05 JK +CZK cash 0 JK test currency rounding set locale en @@ -637,8 +646,8 @@ begin format output breaks Inf [\u221e] -Inf (\u221e) K -// Q prints the affixes -NaN NaN KQ +// J does not print the affixes +NaN [NaN] J test nan and infinity with multiplication set locale en @@ -652,18 +661,18 @@ NaN NaN K test nan and infinity with padding set locale en_US set pattern $$$0.00$ -set formatWidth 7 +set formatWidth 8 begin format padPosition output breaks -Inf beforePrefix $$$\u221e$ K -Inf afterPrefix $$$ \u221e$ K -Inf beforeSuffix $$$\u221e $ K -Inf afterSuffix $$$\u221e$ K -// Q gets $$$NaN$ -NaN beforePrefix NaN KQ -NaN afterPrefix NaN KQ -NaN beforeSuffix NaN KQ -NaN afterSuffix NaN KQ +Inf beforePrefix $$$\u221e$ K +Inf afterPrefix $$$ \u221e$ K +Inf beforeSuffix $$$\u221e $ K +Inf afterSuffix $$$\u221e$ K +// J does not print the affixes +NaN beforePrefix $$$NaN$ J +NaN afterPrefix $$$ NaN$ J +NaN beforeSuffix $$$NaN $ J +NaN afterSuffix $$$NaN$ J test apply formerly localized patterns begin @@ -689,25 +698,25 @@ test toPattern set locale en begin pattern toPattern breaks -// All of the "S" failures in this section are because of functionally equivalent patterns +// All of the C and S failures in this section are because of functionally equivalent patterns // JDK doesn't support any patterns with padding or both negative prefix and suffix // Breaks ICU4J See ticket 11671 **0,000 **0,000 JK **##0,000 **##0,000 K **###0,000 **###0,000 K -**####0,000 **#,##0,000 KS +**####0,000 **#,##0,000 CKS ###,000. #,000. -0,000 #0,000 S +0,000 #0,000 CS .00 #.00 -000 #000 S -000,000 #,000,000 S +000 #000 CS +000,000 #,000,000 CS pp#,000 pp#,000 -00.## #00.## S +00.## #00.## CS #,#00.025 #,#00.025 // No secondary grouping in JDK #,##,###.02500 #,##,###.02500 K pp#,000;(#) pp#,000;(#,000) K -**####,##,##0.0##;(#) **#,##,##,##0.0##;**(##,##,##0.0##) KS +**####,##,##0.0##;(#) **#,##,##,##0.0##;**(##,##,##0.0##) CKS // No significant digits in JDK @@### @@### K @,@#,### @,@#,### K @@ -736,16 +745,16 @@ parse output breaks 5,347.25 5347.25 JK (5,347.25 -5347.25 J // S is successful at parsing this as -5347.25 in lenient mode --5,347.25 -5347.25 CJK +-5,347.25 -5347.25 JK +3.52E4 35200 (34.8E-3) -0.0348 // JDK stops parsing at the spaces. JDK doesn't see space as a grouping separator (34 25E-1) -342.5 K (34,,25E-1) -342.5 -// J doesn't allow trailing separators before E but C does -(34,,25,E-1) -342.5 JP +// J doesn't allow trailing separators before E but C and P do +(34,,25,E-1) -342.5 CJP (34 25 E-1) -342.5 JK -(34,,25 E-1) -342.5 CJK +(34,,25 E-1) -342.5 JK // Spaces are not allowed after exponent symbol // C parses up to the E but J bails (34 25E -1) -3425 JK @@ -796,19 +805,17 @@ set locale en set pattern #,##0.0###+;#- begin parse output breaks -// C sees this as -3426, don't understand why. // J and K just bail. -3426 3426 JKC +3426 3426 JK 3426+ 3426 -// J bails; C and K see -34 -34 d1+ 34 JKC +// J bails; K sees -34 +34 d1+ 34 JK // JDK sees this as -1234 for some reason // J bails b/c of trailing separators -// C parses until trailing separators, but sees -1234 -1,234,,,+ 1234 JKC +1,234,,,+ 1234 JK 1,234- -1234 -// J and P bail because of trailing separators -1,234,- -1234 JP +// J, C, and P bail because of trailing separators +1,234,- -1234 CJP // J bails here too 1234 - -1234 J @@ -861,8 +868,8 @@ parse output breaks +1,234.5 1234.5 // Comma after decimal means parse to a comma +1,23,456.78,9 123456.78 -// C and J fail upon seeing the second decimal point -+1,23,456.78.9 123456.78 CJ +// J fails upon seeing the second decimal point ++1,23,456.78.9 123456.78 J +79 79 +79 79 + 79 fail @@ -901,7 +908,7 @@ begin parse output breaks 35 35 // S accepts leading plus signs -+35 35 CJK ++35 35 JK -35 -35 2.63 2 -39.99 -39 @@ -1028,19 +1035,19 @@ $53.45 fail USD JP 53.45 USD 53.45 USD 53.45 GBP 53.45 GBP USD 53.45 53.45 USD J -53.45USD 53.45 USD CJ +53.45USD 53.45 USD J USD53.45 53.45 USD (7.92) USD -7.92 USD (7.92) GBP -7.92 GBP (7.926) USD -7.926 USD -(7.926 USD) -7.926 USD CJ -(USD 7.926) -7.926 USD CJ -USD (7.926) -7.926 USD CJ -USD (7.92) -7.92 USD CJ -(7.92)USD -7.92 USD CJ -USD(7.92) -7.92 USD CJ +(7.926 USD) -7.926 USD J +(USD 7.926) -7.926 USD J +USD (7.926) -7.926 USD J +USD (7.92) -7.92 USD J +(7.92)USD -7.92 USD J +USD(7.92) -7.92 USD J (8) USD -8 USD --8 USD -8 USD C +-8 USD -8 USD 67 USD 67 USD 53.45$ fail USD P US Dollars 53.45 53.45 USD J @@ -1048,20 +1055,20 @@ US Dollars 53.45 53.45 USD J US Dollar 53.45 53.45 USD J 53.45 US Dollar 53.45 USD US Dollars53.45 53.45 USD -53.45US Dollars 53.45 USD CJ +53.45US Dollars 53.45 USD J US Dollar53.45 53.45 USD US Dollat53.45 fail USD -53.45US Dollar 53.45 USD CJ -US Dollars (53.45) -53.45 USD CJ +53.45US Dollar 53.45 USD J +US Dollars (53.45) -53.45 USD J (53.45) US Dollars -53.45 USD (53.45) Euros -53.45 EUR -US Dollar (53.45) -53.45 USD CJ +US Dollar (53.45) -53.45 USD J (53.45) US Dollar -53.45 USD -US Dollars(53.45) -53.45 USD CJ -(53.45)US Dollars -53.45 USD CJ -US Dollar(53.45) -53.45 USD CJ +US Dollars(53.45) -53.45 USD J +(53.45)US Dollars -53.45 USD J +US Dollar(53.45) -53.45 USD J US Dollat(53.45) fail USD -(53.45)US Dollar -53.45 USD CJ +(53.45)US Dollar -53.45 USD J test parse currency ISO negative @@ -1075,14 +1082,14 @@ $53.45 fail USD JP 53.45 USD 53.45 USD 53.45 GBP 53.45 GBP USD 53.45 53.45 USD J -53.45USD 53.45 USD CJ +53.45USD 53.45 USD J USD53.45 53.45 USD -7.92 USD -7.92 USD -7.92 GBP -7.92 GBP -7.926 USD -7.926 USD -USD -7.926 -7.926 USD CJ --7.92USD -7.92 USD CJ -USD-7.92 -7.92 USD CJ +USD -7.926 -7.926 USD J +-7.92USD -7.92 USD J +USD-7.92 -7.92 USD J -8 USD -8 USD 67 USD 67 USD 53.45$ fail USD P @@ -1091,10 +1098,10 @@ US Dollars 53.45 53.45 USD J US Dollar 53.45 53.45 USD J 53.45 US Dollar 53.45 USD US Dollars53.45 53.45 USD -53.45US Dollars 53.45 USD CJ +53.45US Dollars 53.45 USD J US Dollar53.45 53.45 USD US Dollat53.45 fail USD -53.45US Dollar 53.45 USD CJ +53.45US Dollar 53.45 USD J test parse currency long @@ -1109,19 +1116,19 @@ $53.45 fail USD JP 53.45 USD 53.45 USD 53.45 GBP 53.45 GBP USD 53.45 53.45 USD J -53.45USD 53.45 USD CJ +53.45USD 53.45 USD J USD53.45 53.45 USD (7.92) USD -7.92 USD (7.92) GBP -7.92 GBP (7.926) USD -7.926 USD -(7.926 USD) -7.926 USD CJ -(USD 7.926) -7.926 USD CJ -USD (7.926) -7.926 USD CJ -USD (7.92) -7.92 USD CJ -(7.92)USD -7.92 USD CJ -USD(7.92) -7.92 USD CJ +(7.926 USD) -7.926 USD J +(USD 7.926) -7.926 USD J +USD (7.926) -7.926 USD J +USD (7.92) -7.92 USD J +(7.92)USD -7.92 USD J +USD(7.92) -7.92 USD J (8) USD -8 USD --8 USD -8 USD C +-8 USD -8 USD 67 USD 67 USD // J throws a NullPointerException on the next case 53.45$ fail USD P @@ -1130,10 +1137,10 @@ US Dollars 53.45 53.45 USD J US Dollar 53.45 53.45 USD J 53.45 US Dollar 53.45 USD US Dollars53.45 53.45 USD -53.45US Dollars 53.45 USD CJ +53.45US Dollars 53.45 USD J US Dollar53.45 53.45 USD US Dollat53.45 fail USD -53.45US Dollar 53.45 USD CJ +53.45US Dollar 53.45 USD J test parse currency short @@ -1147,19 +1154,19 @@ $53.45 fail USD JP 53.45 USD 53.45 USD 53.45 GBP 53.45 GBP USD 53.45 53.45 USD J -53.45USD 53.45 USD CJ +53.45USD 53.45 USD J USD53.45 53.45 USD (7.92) USD -7.92 USD (7.92) GBP -7.92 GBP (7.926) USD -7.926 USD -(7.926 USD) -7.926 USD CJ -(USD 7.926) -7.926 USD CJ -USD (7.926) -7.926 USD CJ -USD (7.92) -7.92 USD CJ -(7.92)USD -7.92 USD CJ -USD(7.92) -7.92 USD CJ +(7.926 USD) -7.926 USD J +(USD 7.926) -7.926 USD J +USD (7.926) -7.926 USD J +USD (7.92) -7.92 USD J +(7.92)USD -7.92 USD J +USD(7.92) -7.92 USD J (8) USD -8 USD --8 USD -8 USD C +-8 USD -8 USD 67 USD 67 USD 53.45$ fail USD P US Dollars 53.45 53.45 USD J @@ -1167,10 +1174,10 @@ US Dollars 53.45 53.45 USD J US Dollar 53.45 53.45 USD J 53.45 US Dollar 53.45 USD US Dollars53.45 53.45 USD -53.45US Dollars 53.45 USD CJ +53.45US Dollars 53.45 USD J US Dollar53.45 53.45 USD US Dollat53.45 fail USD -53.45US Dollar 53.45 USD CJ +53.45US Dollar 53.45 USD J test parse currency short prefix @@ -1181,12 +1188,12 @@ parse output outputCurrency breaks 53.45 fail GBP £53.45 53.45 GBP $53.45 fail USD JP -53.45 USD 53.45 USD C -53.45 GBP 53.45 GBP C +53.45 USD 53.45 USD +53.45 GBP 53.45 GBP USD 53.45 53.45 USD J -53.45USD 53.45 USD CJ +53.45USD 53.45 USD J USD53.45 53.45 USD -// P fails these because '(' is an incomplete prefix. +// C and P fail these because '(' is an incomplete prefix. (7.92) USD -7.92 USD CJP (7.92) GBP -7.92 GBP CJP (7.926) USD -7.926 USD CJP @@ -1197,17 +1204,17 @@ USD (7.92) -7.92 USD CJP (7.92)USD -7.92 USD CJP USD(7.92) -7.92 USD CJP (8) USD -8 USD CJP --8 USD -8 USD C -67 USD 67 USD C +-8 USD -8 USD +67 USD 67 USD 53.45$ fail USD P US Dollars 53.45 53.45 USD J 53.45 US Dollars 53.45 USD US Dollar 53.45 53.45 USD J 53.45 US Dollar 53.45 USD US Dollars53.45 53.45 USD -53.45US Dollars 53.45 USD CJ +53.45US Dollars 53.45 USD J US Dollar53.45 53.45 USD -53.45US Dollar 53.45 USD CJ +53.45US Dollar 53.45 USD J test format foreign currency set locale fa_IR @@ -1226,10 +1233,10 @@ parse output outputCurrency breaks \u0631\u06cc\u0627\u0644 \u06F1\u06F2\u06F3\u06F5 1235 IRR IRR \u06F1\u06F2\u06F3\u06F5 1235 IRR // P fails here because this currency name is in the Trie only, but it has the same prefix as the non-Trie currency -\u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 \u06F1\u06F2\u06F3\u06F5 1235 IRR P +\u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 \u06F1\u06F2\u06F3\u06F5 1235 IRR CP IRR 1235 1235 IRR \u0631\u06cc\u0627\u0644 1235 1235 IRR -\u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 1235 1235 IRR P +\u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 1235 1235 IRR CP test parse foreign currency ISO set pattern \u00a4\u00a4 0.00;\u00a4\u00a4 -# @@ -1238,10 +1245,10 @@ begin parse output outputCurrency breaks \u0631\u06cc\u0627\u0644 \u06F1\u06F2\u06F3\u06F5 1235 IRR IRR \u06F1\u06F2\u06F3\u06F5 1235 IRR -\u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 \u06F1\u06F2\u06F3\u06F5 1235 IRR P +\u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 \u06F1\u06F2\u06F3\u06F5 1235 IRR CP IRR 1235 1235 IRR \u0631\u06cc\u0627\u0644 1235 1235 IRR -\u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 1235 1235 IRR P +\u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 1235 1235 IRR CP test parse foreign currency full set pattern \u00a4\u00a4\u00a4 0.00;\u00a4\u00a4\u00a4 -# @@ -1250,10 +1257,10 @@ begin parse output outputCurrency breaks \u0631\u06cc\u0627\u0644 \u06F1\u06F2\u06F3\u06F5 1235 IRR IRR \u06F1\u06F2\u06F3\u06F5 1235 IRR -\u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 \u06F1\u06F2\u06F3\u06F5 1235 IRR P +\u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 \u06F1\u06F2\u06F3\u06F5 1235 IRR CP IRR 1235 1235 IRR \u0631\u06cc\u0627\u0644 1235 1235 IRR -\u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 1235 1235 IRR P +\u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 1235 1235 IRR CP test parse currency with foreign symbols symbol english set pattern \u00a4 0.00;\u00a4 (#) @@ -1295,10 +1302,10 @@ begin parse currency output breaks $52.41 USD 52.41 USD52.41 USD 52.41 K -\u20ac52.41 USD fail P -EUR52.41 USD fail P -$52.41 EUR fail P -USD52.41 EUR fail P +\u20ac52.41 USD fail CP +EUR52.41 USD fail CP +$52.41 EUR fail CP +USD52.41 EUR fail CP \u20ac52.41 EUR 52.41 K EUR52.41 EUR 52.41 @@ -1308,11 +1315,11 @@ set locale en_US set lenient 0 begin parse output outputCurrency breaks -$53.45 53.45 USD P +$53.45 53.45 USD CP 53.45 USD 53.45 USD USD 53.45 fail USD 53.45USD fail USD -USD53.45 53.45 USD P +USD53.45 53.45 USD CP (7.92) USD -7.92 USD (7.92) EUR -7.92 EUR (7.926) USD -7.926 USD @@ -1330,9 +1337,9 @@ US Dollars 53.45 fail USD 53.45 US Dollars 53.45 USD US Dollar 53.45 fail USD 53.45 US Dollar 53.45 USD -US Dollars53.45 53.45 USD P +US Dollars53.45 53.45 USD CP 53.45US Dollars fail USD -US Dollar53.45 53.45 USD P +US Dollar53.45 53.45 USD CP US Dollat53.45 fail USD 53.45US Dollar fail USD US Dollars (53.45) fail USD @@ -1361,14 +1368,14 @@ begin pattern parse output breaks // K doesn't support this feature. 0 123 123 -0 123. fail CJK -0 1.23 fail CJK +0 123. fail JK +0 1.23 fail JK 0 -513 -513 -0 -513. fail CJK -0 -5.13 fail CJK +0 -513. fail JK +0 -5.13 fail JK 0.0 123 fail K -0.0 123. 123 C -0.0 1.23 1.23 C +0.0 123. 123 +0.0 1.23 1.23 0.0 -513 fail K 0.0 -513. -513 0.0 -5.13 -5.13 @@ -1398,20 +1405,21 @@ Aa1.23 0 1.23 AA1.23 1 fail // J and K do not support case-insensitive parsing for prefix/suffix. // J supports it for the exponent separator, but not K. -AA1.23 0 1.23 CJK +AA1.23 0 1.23 JK aa1.23 1 fail -aa1.23 0 1.23 CJK +aa1.23 0 1.23 JK Aa1.23E3 1 1230 Aa1.23E3 0 1230 -Aa1.23e3 1 1.23 CJ +Aa1.23e3 1 1.23 J Aa1.23e3 0 1230 K NaN 1 NaN K NaN 0 NaN K nan 1 fail -nan 0 NaN CJK +nan 0 NaN JK test parse infinity and scientific notation overflow set locale en +set lenient 1 begin parse output breaks NaN NaN K @@ -1423,11 +1431,11 @@ NaN NaN K -1E-99999999999999 -0.0 1E2147483648 Inf K 1E2147483647 Inf K -1E2147483646 1E2147483646 +1E2147483646 1E+2147483646 1E-2147483649 0 1E-2147483648 0 -// P returns zero here -1E-2147483647 1E-2147483647 P +// C and P return zero here +1E-2147483647 1E-2147483647 CP 1E-2147483646 1E-2147483646 test format push limits @@ -1436,30 +1444,30 @@ set minFractionDigits 2 set roundingMode halfDown begin maxFractionDigits format output breaks -// C has trouble formatting too many digits (#11318) -100 987654321987654321 987654321987654321.00 C -100 987654321.987654321 987654321.987654321 C -100 9999999999999.9950000000001 9999999999999.9950000000001 C -2 9999999999999.9950000000001 10000000000000.00 C +100 987654321987654321 987654321987654321.00 +100 987654321.987654321 987654321.987654321 +100 9999999999999.9950000000001 9999999999999.9950000000001 +2 9999999999999.9950000000001 10000000000000.00 2 9999999.99499999 9999999.99 // K doesn't support halfDown rounding mode? 2 9999999.995 9999999.99 K 2 9999999.99500001 10000000.00 -100 56565656565656565656565656565656565656565656565656565656565656 56565656565656565656565656565656565656565656565656565656565656.00 C -100 454545454545454545454545454545.454545454545454545454545454545 454545454545454545454545454545.454545454545454545454545454545 C +100 56565656565656565656565656565656565656565656565656565656565656 56565656565656565656565656565656565656565656565656565656565656.00 +100 454545454545454545454545454545.454545454545454545454545454545 454545454545454545454545454545.454545454545454545454545454545 100 0.0000000000000000000123 0.0000000000000000000123 -100 -78787878787878787878787878787878 -78787878787878787878787878787878.00 C -100 -8989898989898989898989.8989898989898989 -8989898989898989898989.8989898989898989 C +100 -78787878787878787878787878787878 -78787878787878787878787878787878.00 +100 -8989898989898989898989.8989898989898989 -8989898989898989898989.8989898989898989 test ticket 11230 set locale en -set pattern #,##0 begin -parse output breaks +pattern parse output breaks // K and J return null; S, C, and P return 99 - 9 9 9 CJKP +#,##0 9 9 99 JK // K returns null - 9 999 9999 K +#,##0 9 999 9999 K +0 9 9 9 JK +0 9 999 9 K test parse ignorables set locale ar @@ -1492,13 +1500,13 @@ y gh56 -56 JK y g h56 -56 JK // S stops parsing after the 'i' for these and returns -56 // C stops before the 'i' and gets 56 -56ijk -56 CJK -56i jk -56 CJK -56ij k -56 CJK -56i‎j‎k -56 CJK -56ijk -56 CJK -56i j‎k -56 CJK -56‎i jk -56 CJK +56ijk -56 JK +56i jk -56 JK +56ij k -56 JK +56i‎j‎k -56 JK +56ijk -56 JK +56i j‎k -56 JK +56‎i jk -56 JK // S and C get 56 (accepts ' ' gs grouping); J and K get null 5 6 fail CP 5‎6 5 JK @@ -1566,8 +1574,8 @@ begin pattern format output breaks 0 -15 -15 0; -15 -15 -// C, J, and K still prepend a '-' even though the pattern says otherwise -0;0 -15 15 CJK +// J and K still prepend a '-' even though the pattern says otherwise +0;0 -15 15 JK test percentage multiplier parsing // This test is for #13129 @@ -1583,9 +1591,9 @@ set pattern 0 set signAlwaysShown 1 begin format output breaks -// C, J and K do not support this feature -42 +42 CJK -0 +0 CJK +// J and K do not support this feature +42 +42 JK +0 +0 JK -42 -42 test parse strict with plus sign @@ -1596,14 +1604,23 @@ begin lenient parse output breaks 1 42 42 1 -42 -42 -1 +42 42 CJK +1 +42 42 JK 1 0 0 -1 +0 0 CJK -0 42 fail CJK +1 +0 0 JK +0 42 fail JK 0 -42 -42 -0 +42 42 CJK -0 0 fail CJK -0 +0 0 CJK +0 +42 42 JK +0 0 fail JK +0 +0 0 JK + +test parse with scientific-separator-affix overlap +set locale en +begin +pattern lenient parse output breaks +0E0','x 1 5E3,x 5000 +0E0','x 0 5E3,x 5000 +0E0'.'x 1 5E3.x 5000 +0E0'.'x 0 5E3.x 5000 test parse lowercase currency set locale en -- 2.40.0