]> granicus.if.org Git - icu/commitdiff
ICU-13740 Syncing numberformattestspecification.txt between C and J
authorShane Carr <shane@unicode.org>
Thu, 17 May 2018 02:26:09 +0000 (02:26 +0000)
committerShane Carr <shane@unicode.org>
Thu, 17 May 2018 02:26:09 +0000 (02:26 +0000)
X-SVN-Rev: 41394

icu4c/source/test/testdata/numberformattestspecification.txt
icu4j/main/tests/core/src/com/ibm/icu/dev/data/numberformattestspecification.txt

index 9f2ea192016021f2bfe9461536293125759f682d..9c426a14f459265bb3158987cf5817d47deb231d 100644 (file)
@@ -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
 
 
 
index 74795b02d148ddc781fcb083d75de09a22a0b3b2..9c426a14f459265bb3158987cf5817d47deb231d 100644 (file)
@@ -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