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

Unified 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « source/test/testdata/iscii.bin ('k') | source/test/testdata/rbbitst.txt » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: source/test/testdata/numberformattestspecification.txt
diff --git a/source/test/testdata/numberformattestspecification.txt b/source/test/testdata/numberformattestspecification.txt
new file mode 100644
index 0000000000000000000000000000000000000000..375aa399fbe5fc54ec343dd4693aef4c2b290cba
--- /dev/null
+++ b/source/test/testdata/numberformattestspecification.txt
@@ -0,0 +1,1108 @@
+// Copyright (C) 2015, International Business Machines
+// Corporation and others. All Rights Reserved.
+//
+// This file is divided into test suites separated by whitespace. Each test
+// suite starts with the name of the test followed by global field settings
+// 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.
+// 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
+
+test plus sign
+set locale ar
+set pattern +0;-#
+begin
+format output breaks
+6 \u200F+\u0666 JK
+-6 \u200F-\u0666 JK
+
+test basic patterns
+set locale fr_FR
+set format 1234.567
+begin
+pattern output
+#,##0.## 1\u00a0234,57
+0.## 1234,57
+0 1235
+#,##0.### 1\u00a0234,567
+###0.###### 1234,567
+###0.0000# 1234,5670
+00000.0000 01234,5670
+#,##0.00 \u00a4 1\u00a0234,57 \u20ac
+'tick''bitten '0.00 tick'bitten 1234,57
+'tick' 'bitten '0.00 tick bitten 1234,57
+
+
+test minimum and maximum fraction digits
+set locale en
+set minIntegerDigits 2
+set maxIntegerDigits 4
+set minFractionDigits 3
+set maxFractionDigits 5
+begin
+format output
+6 06.000
+6.000005 06.000
+6.000006 06.00001
+1002003004005 4005.000
+-1002003004005 -4005.000
+12 12.000
+12345 2345.000
+72.1234 72.1234
+
+test int64
+set locale en
+begin
+format output
+1002003004005 1002003004005
+-1002003004005 -1002003004005
+
+test rounding
+set locale fr
+begin
+pattern format output breaks
+0.5 1.25 1,0 K
+0.5 1.75 2,0 K
+0.5 -1.25 -1,0 K
+00.5 -1.75 -02,0 K
+4 2.0 0 K
+4 6.0 8 K
+4 10.0 8 K
+2.70 99.0 99,90 K
+2.73 272.0 273,00 K
+#,#3.70 104.0 1\u00a003,60 K
+
+test significant digits
+set locale en
+set pattern #,#@,@###
+begin
+format output breaks
+7 7.0 K
+23 23 K
+100 100 K
+1000 1000 K
+10000 1,0000 K
+10001 1,0001 K
+10001.5 1,0002 K
+1234567 1,23,4600 K
+-1234567 -1,23,4600 K
+3.14159 3.1416 K
+
+test scientific notation
+set locale fr
+begin
+pattern format output breaks
+0.00E0 12345 1,23E4
+000.00E0 12300 123,00E2
+000.0#E0 12300 123,0E2
+000.0#E0 12300.1 123,0E2
+000.0#E0 12301.0 123,01E2
+// JDK does not support exponent signs
+000.0#E+00 12301.0 123,01E+02 K
+// JDK gives 12,345E3. JDK seems to include the hashes in significant digits
+##0.00E0 12345 12,3E3 K
+// JDK gives 12,3001E3
+##0.0000E0 12300.1 12,300E3 K
+// JDK gives 12,3001E3
+##0.000#E0 12300.1 12,30E3 K
+##0.000#E0 12301 12,301E3
+0.05E0 12301.2 1,25E4 JK
+##0.000#E0 0.17 170,0E-3
+// JDK doesn't support significant digits in exponents
+@@@E0 6235 6,24E3 K
+@@@#E0 6200 6,20E3 K
+@@@#E0 6201 6,201E3 K
+@@@#E0 6201.7 6,202E3 K
+@@@#E00 6201.7 6,202E03 K
+@@@#E+00 6201.7 6,202E+03 K
+
+test percents
+set locale fr
+begin
+pattern format output breaks
+0.0% 0.573 57,3%
+%0.0 0.573 %57,3
+p%p0.0 0.573 p%p57,3
+p'%'p0.0 0.573 p%p0,6
+%@@@@ 0.0326 %3,260 K
+%#,@@@ 15.43 %1\u00a0540 K
+// JDK does not support rounding increments
+%#,##4.1 16.55 %1\u00a0656,4 K
+// JDK gives %16,255E3
+%##0.00E0 162.55 %16,3E3 K
+
+test permille
+set locale fr
+begin
+pattern format output breaks
+0.0\u2030 0.573 573,0‰
+\u20300.0 0.573 \u2030573,0
+p\u2030p0.0 0.573 p\u2030p573,0
+p'\u2030'p0.0 0.573 p\u2030p0,6
+\u2030@@@@ 0.0326 \u203032,60 K
+\u2030#,@@@ 15.43 \u203015\u00a0400 K
+\u2030#,##4.1 16.55 \u203016\u00a0551,7 K
+// JDK gives \u2030162,55E3
+\u2030##0.00E0 162.55 \u2030163E3 K
+
+test padding
+set locale fr_FR
+begin
+pattern format output breaks
+// JDK does not seem to support padding
+$**####,##0 1234 $***1\u00a0234 K
+*x$####,##0 1234 xxx$1\u00a0234 K
+####,##0*x$ 1234 1\u00a0234xxx$ K
+####,##0$*x 1234 1\u00a0234$xxx K
+// JDK doesn't seem to handle suffixes correctly dropping the 'nx' entirely
+####,##0$*x;ne#n -1234 ne1\u00a0234nx K
+####,##0$*x;n#'*' -1234 n1\u00a0234*xx K
+*y%4.2###### 4.33 yyyy%432,6 K
+// In J ICU adds padding as if 'EUR' is only 2 chars (2 * 0xa4)
+\u00a4\u00a4 **####0.00 433.0 EUR *433,00 JK
+// In J ICU adds padding as if 'EUR' is only 2 chars (2 * 0xa4)
+\u00a4\u00a4 **#######0 433.0 EUR *433,00 JK
+
+test padding and currencies
+begin
+locale currency pattern format output breaks
+// In J, JPY is considered 2 char (2 * 0xa4) even though padding is done
+// after prefix. In C this test works.
+fr JPY \u00a4\u00a4 **#######0 433.22 JPY ****433 JK
+// JDK doesn't correct rounding for currency, shows USD (433
+en USD \u00a4\u00a4 **#######0;\u00a4\u00a4 (#) -433.22 USD (433.22) K
+
+test currencies
+set locale fr
+set format 1234.567
+begin
+pattern currency output breaks
+// JDK gives shows EUR instead of the euro symbol in this case
+#,##0.00 \u00a4 EUR 1\u00a0234,57 \u20ac K
+// JDK gives 1\u00A0234,57. JDK doesn't seem to correct rounding
+// based on currency.
+#,##0.00 \u00a4 JPY 1\u00a0235 JPY K
+
+test prefixes and suffixes
+set locale en
+set pattern 0.00+;(#)
+begin
+format output breaks
+7 7.00+
+// JDK does not support negative suffixes
+-3.5 (3.50) K
+
+test minimum grouping digits
+set locale en
+set pattern #,##0
+set minGroupingDigits 2
+begin
+format output breaks
+// min grouping digits not supported in any existing implementation
+// but could be easily added to the new DecimalFormat C code.
+1000 1000 JK
+10000 10,000
+100000 100,000
+1000000 1,000,000
+
+test min max fraction digits
+set locale en
+set pattern #,##0.###
+set format 1234.567
+begin
+minFractionDigits maxFractionDigits output
+0 0 1,235
+0 2 1,234.57
+4 5 1,234.5670
+
+test min max integer digits
+set locale en
+set pattern #,##0.###
+set format 1234.567
+begin
+minIntegerDigits maxIntegerDigits output
+0 0 .567
+0 3 234.567
+5 5 01,234.567
+
+test min max fraction digits scientific
+set locale en
+set pattern #E0
+set format 299792458.0
+begin
+minIntegerDigits maxIntegerDigits minFractionDigits maxFractionDigits output breaks
+// JDK gives .3E9 instead of unlimited precision.
+0 1 0 0 2.99792458E8 K
+1 1 0 0 3E8
+// JDK gives E0 instead of allowing for unlimited precision
+0 0 0 0 2.99792458E8 K
+// JDK gives .299792E9
+0 1 0 5 2.9979E8 K
+// JDK gives 300E6
+0 3 0 0 299.792458E6 K
+// JDK gives 299.8E6 (maybe maxInt + maxFrac instead of minInt + maxFrac)?
+0 3 0 1 300E6 K
+// JDK gives 299.7925E6
+2 3 0 4 299.792E6 K
+// JDK gives 299.79246E6
+2 3 0 5 299.7925E6 K
+3 3 0 5 299.79246E6
+3 3 0 4 299.7925E6
+2 2 0 3 29.979E7
+4 4 0 0 2998E5
+0 0 1 5 .29979E9
+// JDK gives E0
+0 0 1 0 2.99792458E8 K
+// JDK gives .2998E9
+0 0 0 4 2.998E8 K
+// JDK uses 8 + 6 for significant digits instead of 2 + 6
+2 8 1 6 2.9979246E8 K
+// Treat max int digits > 8 as being the same as min int digits.
+// This behavior is not spelled out in the specification.
+// JDK fails here because it tries to use 9 + 6 = 15 sig digits.
+2 9 1 6 29.979246E7 K
+
+test significant digits scientific
+set locale en
+set pattern #E0
+set format 290000000.0
+begin
+minSigDigits maxSigDigits output breaks
+0 1 3E8 K
+0 2 2.9E8 K
+0 3 2.9E8 K
+1 1 3E8 K
+1 2 2.9E8 K
+1 3 2.9E8 K
+2 2 2.9E8 K
+2 3 2.9E8 K
+3 3 2.90E8 K
+3 4 2.90E8 K
+
+test min max fraction digits scientific 2
+set locale en
+set pattern #E0
+set format 29979245.0
+begin
+minIntegerDigits maxIntegerDigits minFractionDigits maxFractionDigits output breaks
+// JDK gives E0
+0 0 0 0 2.9979245E7 K
+// JDK gives .3E8
+0 1 0 0 2.9979245E7 K
+// JDK gives 2998E4.
+0 4 0 0 2997.9245E4 K
+
+test ticket 11524
+set locale en
+set pattern #,##0.###
+begin
+format maxIntegerDigits output
+123 1 3
+123 -2147483648 0
+12345 1 5
+12345 -2147483648 0
+5.3 1 5.3
+5.3 -2147483648 .3
+
+test patterns with zero
+set locale en
+set format 0
+begin
+pattern output
+#.# 0
+#. 0.
+.# .0
+# 0
+00.000E00 00.000E00
+0.####E0 0E0
+##0.######E000 0E000
+
+test significant digits manually set
+set locale en_US
+set pattern 0.0
+set useSigDigits 1
+set minSigDigits 3
+set maxSigDigits 5
+begin
+format output breaks
+0.0012 0.00120 K
+0.00123 0.00123 K
+0.001234 0.001234 K
+0.0012345 0.0012345 K
+0.00123456 0.0012346 K
+-43 -43.0 K
+-43.7 -43.7 K
+-43.76 -43.76 K
+-43.762 -43.762 K
+-43.7626 -43.763 K
+
+test grouping used setters
+set locale en_US
+set pattern #,##0
+set format 12345
+begin
+output useGrouping
+12,345
+12,345 1
+12345 0
+
+test grouping setters
+set locale en_US
+set pattern 0
+set format 123456789
+set useGrouping 1
+begin
+output grouping breaks grouping2 minGroupingDigits
+1,2345,6789 4
+1,23,45,6789 4 K 2
+1,23,45,6789 4 K 2 2
+123,456789 6 K 6 3
+123456789 6 JK 6 4
+
+test multiplier setters
+set locale en_US
+begin
+format multiplier output breaks
+23 -12 -276
+23 -1 -23
+// ICU4J and JDK throw exception on zero multiplier. ICU4C does not.
+23 0 23 JK
+23 1 23
+23 12 276
+-23 12 -276
+-23 -12 276
+
+test rounding setters
+set locale en_US
+set pattern 0.0#
+set roundingIncrement 0.25
+begin
+format output breaks
+-0.35 -0.25 K
+0.35 0.25 K
+0.39 0.5 K
+0.62 0.5 K
+0.63 0.75 K
+
+test padding setters
+set locale en_US
+set pattern bill0
+set format 1357
+begin
+padCharacter formatWidth output breaks
+* 8 bill1357 K
+* 9 *bill1357 K
+^ 10 ^^bill1357 K
+
+test use scientific setter
+set locale en_US
+set pattern 0.00
+set format 186283
+begin
+output breaks useScientific
+186283.00
+1.86E5 K 1
+186283.00 K 0
+
+test rounding mode setters
+set locale en_US
+set pattern 0.#
+set roundingIncrement 0.5
+begin
+format roundingMode output breaks
+1.24 halfUp 1 K
+1.25 halfUp 1.5 K
+1.25 halfDown 1 K
+1.26 halfDown 1.5 K
+1.25 halfEven 1 K
+-1.01 up -1.5 K
+-1.49 down -1 K
+1.01 up 1.5 K
+1.49 down 1 K
+-1.01 ceiling -1 K
+-1.49 floor -1.5 K
+
+test currency usage setters
+// TODO: Find a country and currency where standard and cash differ
+set locale CH
+set currency CHF
+set pattern \u00a4\u00a4 0
+begin
+format currencyUsage output breaks
+0.37 standard CHF 0.37 K
+// TODO: Get the rounding data into ICU4C and ICU4J
+0.37 cash CHF 0.35 CJK
+
+test exponent parameter setters
+set locale en_US
+set pattern 0.##E0
+set format 299792458
+begin
+decimalSeparatorAlwaysShown exponentSignAlwaysShown minimumExponentDigits output breaks
+0 0 2 3E08 K
+0 1 3 3E+008 K
+// ICU DecimalFormat J does not honor decimalSeparatorAlwaysShown
+// for scientific notation. But JDK DecimalFormat does honor
+// decimalSeparatorAlwaysShown K=JDK; C=ICU4C; J=ICU4J
+// See ticket 11621
+1 0 2 3.E08 JK
+1 1 3 3.E+008 JK
+1 0 1 3.E8 J
+0 0 1 3E8
+
+test exponent decimalSeparatorAlwaysShown default
+set locale en_US
+set pattern 0.##E0
+begin
+format output breaks decimalSeparatorAlwaysShown
+// decimalSeparatorAlwaysShown off by default
+299792458 3E8
+299000000 2.99E8
+299792458 3.E8 J 1
+
+test pad position setters
+set locale en_US
+set pattern **[#####0.##];((#))
+begin
+format padPosition output breaks
+12.34 beforePrefix ****[12.34] K
+12.34 afterPrefix [****12.34] K
+12.34 beforeSuffix [12.34****] K
+12.34 afterSuffix [12.34]**** K
+-12.34 beforePrefix **((12.34)) K
+-12.34 afterPrefix ((**12.34)) K
+-12.34 beforeSuffix ((12.34**)) K
+-12.34 afterSuffix ((12.34))** K
+
+test affix setters
+set locale fr_FR
+set currency EUR
+set pattern 0.00
+begin
+format positivePrefix positiveSuffix negativePrefix negativeSuffix output
+12.34 % %12,34
+12.34 \u00a4\u00a4 12,34\u00a4\u00a4
+12.34 - + 12,34
+-12.34 - + -12,34+
+-12.34 \u00a4 \u00a412,34
+12.34 \u00a4 12,34
+-12.34 % 12,34%
+12.34 % 12,34
+
+test more affix setters
+set locale fr_FR
+set pattern %0.00
+begin
+format positivePrefix negativePrefix output
+0.648 booya cooya booya64,80
+
+test nan and infinity
+set locale en_US
+set pattern [0.00];(#)
+begin
+format output breaks
+Inf [\u221e] K
+-Inf (\u221e) K
+NaN NaN K
+
+test nan and infinity with multiplication
+set locale en
+set multiplier 100
+begin
+format output breaks
+Inf \u221e
+-Inf -\u221e
+NaN NaN K
+
+test nan and infinity with padding
+set locale en_US
+set pattern $$$0.00$
+set formatWidth 7
+begin
+format padPosition output breaks
+Inf beforePrefix $$$\u221e$ K
+Inf afterPrefix $$$ \u221e$ K
+Inf beforeSuffix $$$\u221e $ K
+Inf afterSuffix $$$\u221e$ K
+NaN beforePrefix NaN K
+NaN afterPrefix NaN K
+NaN beforeSuffix NaN K
+NaN afterSuffix NaN K
+
+test apply localized patterns
+begin
+locale localizedPattern format output breaks
+en 0% 0.4376 44%
+// This next test breaks JDK. JDK doesn't multiply by 100.
+fa \u06f0\u066a 0.4376 \u06f4\u06f4\u066a K
+
+test toPattern
+set locale en
+begin
+pattern toPattern breaks
+// 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 K
+###,000. #,000.
+0,000 #0,000
+.00 #.00
+000 #000
+000,000 #,000,000
+pp#,000 pp#,000
+00.## #00.##
+#,#00.025 #,#00.025
+// No secondary grouping in JDK
+#,##,###.02500 #,##,###.02500 K
+pp#,000;(#) pp#,000;(#,000) K
+**####,##,##0.0##;(#) **#,##,##,##0.0##;**(##,##,##0.0##) K
+// No significant digits in JDK
+@@### @@### K
+@,@#,### @,@#,### K
+0.00E0 0.00E0
+@@@##E0 @@@##E0 K
+###0.00#E0 ###0.00#E0
+##00.00#E0 ##00.00#E0
+0.00E+00 0.00E+00 K
+000.00E00 000.00E00
+###0.00#E00 ###0.00#E00
+
+test parse
+set locale en
+set pattern +#,##0.0###;(#)
+begin
+parse output breaks
++5,347.25 5347.25
++5,347,.25 5347.25
++5,347, 5347
++5347,,, 5347
++5347,,,d8 5347
+(5,347.25) -5347.25
+// J requires prefix and suffix for lenient parsing, but C doesn't
+5,347.25 5347.25 JK
+(5,347.25 -5347.25 J
+-5,347.25 fail
++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 J
+(34 25 E-1) -342.5 JK
+(34,,25 E-1) -3425 J
+// Spaces are not allowed after exponent symbol
+// C parses up to the E but J bails
+(34 25E -1) -3425 JK
++3.52EE4 3.52
++1,234,567.8901 1234567.8901
++1,23,4567.8901 1234567.8901
++1,23,4567.89,01 1234567.89
++1,23,456.78.9 123456.78
++12.34,56 12.34
++79,,20,3 79203
++79 20 3 79203 K
+// Parsing stops at comma as it is different from other separators
++79 20,3 7920 K
++79,,20 3 7920
++ 79 79 K
++,79,,20,3 79203
++7920d3 7920
+// Whitespace immediately after prefix doesn't count as digit separator
+// in C but is does in J
++ ,79,,20,3 79203 JK
+( 19 45) -1945 K
+// C allows trailing separators when there is a prefix and suffix.
+// J allows trailing separators only when there is just a prefix.
+// In this case, J just bails
+( 19 45 ) -1945 JK
+(,,19,45) -1945
+// C parses to the space, but J bails
+(,,19 45) -19 J
+// J bails b/c comma different separator than space. C doesn't treat leading spaces
+// as a separator.
+( 19,45) -1945 JK
+// J bails. Doesn't allow trailing separators when there is prefix and suffix.
+(,,19,45,) -1945 J
+// J bails on next 4 because J doesn't allow letters inside prefix and suffix.
+// C will parse up to the letter.
+(,,19,45,d1) -1945 J
+(,,19,45d1) -1945 J
+( 19 45 d1) -1945 JK
+( 19 45d1) -1945 JK
+// J does allow trailing separator before a decimal point
+(19,45,.25) -1945.25
+// 2nd decimal points are ignored
++4.12.926 4.12
+
+test parse suffix
+set locale en
+set pattern #,##0.0###+;#-
+begin
+parse output breaks
+// C sees this as -3426, don't understand why
+3426 -3426 JK
+3426+ 3426
+// J bails, but JDK will parse up to the space and get 34.
+// C 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 JK
+1,234- -1234
+// J bails because of trailing separators
+1,234,- -1234 J
+// J bails here too
+1234 - -1234 J
+
+
+
+test parse strict
+set locale en
+set pattern +#,##0.0###;(#)
+set lenient 0
+begin
+parse output breaks
++123d5 123
++5347.25 5347.25
+// separators in wrong place cause failure, no separators ok.
++5,347.25 5347.25
+(5347.25) -5347.25
+(5,347.25) -5347.25
+// JDK does allow separators in the wrong place and parses as -5347.25
+(53,47.25) fail K
+// strict requires prefix or suffix
+5,347.25 fail
++3.52E4 35200
+(34.8E-3) -0.0348
+(3425E-1) -342.5
+// Strict doesn't allow separators in sci notation.
+(3,425) -3425
+// JDK allows separators in sci notation and parses as -342.5
+(3,425E-1) fail K
+// Both prefix and suffix needed for strict.
+// JDK accepts this and parses as -342.5
+(3425E-1 fail K
++3.52EE4 3.52
++1,234,567.8901 1234567.8901
+// With strict digit separators don't have to be the right type
+// JDK doesn't acknowledge space as a separator
++1 234 567.8901 1234567.8901 K
+// In general the grouping separators have to match their expected
+// location exactly. The only exception is when string being parsed
+// have no separators at all.
++1,234,567.8901 1234567.8901
+// JDK doesn't require separators to be in the right place
++1,23,4567.8901 fail K
++1234,567.8901 fail K
++1,234567.8901 fail K
++1234567.8901 1234567.8901
+// Comma after decimal means parse to a comma
++123,456.78,9 123456.78
+// A decimal after a decimal means bail
+// JDK parses as 123456.78
++123,456.78.9 fail K
++79 79
++79 79
++ 79 fail
+// JDK parses as -1945
+(1,945d1) fail K
+
+test parse integer only
+set locale en
+set pattern 0.00
+set parseIntegerOnly 1
+begin
+parse output breaks
+35 35
++35 fail
+-35 -35
+2.63 2
+-39.99 -39
+
+test parse no exponent flag
+set pattern 0
+set locale en
+begin
+parseNoExponent parse output breaks
+// JDK doesn't allow lowercase exponent but ICU4J and ICU4C do.
+0 5e2 500 K
+0 5.3E2 530
+// See ticket 11725
+1 5e2 5 J
+1 5.3E2 5.3 JK
+
+test parse currency fail
+set pattern 0
+set locale en
+begin
+parse output outputCurrency breaks
+// See ticket 11735
+53.45 fail USD J
+
+test parse strange prefix
+set locale en
+set positivePrefix dd
+set negativePrefix ddd
+begin
+parse output
+dd4582 4582
+ddd4582 -4582
+
+test parse strange suffix
+set locale en
+set positiveSuffix dd
+set negativePrefix
+set negativeSuffix ddd
+begin
+parse output
+4582dd 4582
+4582ddd -4582
+
+test really strange suffix
+set locale en
+set positiveSuffix 9K
+set negativePrefix
+set negativeSuffix 9N
+begin
+parse output breaks
+// C consumes the '9' as a digit and assumes number is negative
+// J and JDK bail
+// 6549K 654 CJK
+// C consumes the '9' as a digit and assumes number is negative
+// J and JDK bail
+// 6549N -654 CJK
+
+test really strange prefix
+set locale en
+set positivePrefix 82
+set negativePrefix 28
+begin
+parse output
+8245 45
+2845 -45
+
+test select
+set locale sr
+begin
+format pattern plural
+Inf 0 other
+-Inf 0 other
+NaN 0 other
+Inf 0.0 other
+-Inf 0.0 other
+NaN 0.0 other
+1 0 one
+1 0.0 other
+2 0 few
+2 0.0 other
+2 0E0 other
+5.1 0.0 one
+5.09 0.0 one
+
+test parse currency ISO
+set pattern 0.00 \u00a4\u00a4;(#) \u00a4\u00a4
+set locale en_US
+begin
+parse output outputCurrency breaks
+$53.45 53.45 USD
+53.45 USD 53.45 USD
+USD 53.45 53.45 USD J
+53.45USD fail USD
+USD53.45 53.45 USD
+(7.92) USD -7.92 USD
+(7.92) EUR -7.92 EUR
+(7.926) USD -7.926 USD
+(7.926 USD) fail USD
+(USD 7.926) fail USD
+USD (7.926) fail USD
+USD (7.92) fail USD
+(7.92)USD fail USD
+USD(7.92) fail USD
+(8) USD -8 USD
+-8 USD fail USD
+67 USD 67 USD
+53.45$ fail USD
+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 fail USD
+US Dollar53.45 53.45 USD
+US Dollat53.45 fail USD
+53.45US Dollar fail USD
+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 Dollars(53.45) fail USD
+(53.45)US Dollars fail USD
+US Dollar(53.45) fail USD
+US Dollat(53.45) fail USD
+(53.45)US Dollar fail USD
+
+
+test parse currency ISO negative
+set pattern 0.00 \u00a4\u00a4;-# \u00a4\u00a4
+set locale en_US
+begin
+parse output outputCurrency breaks
+$53.45 53.45 USD
+53.45 USD 53.45 USD
+USD 53.45 53.45 USD J
+53.45USD fail USD
+USD53.45 53.45 USD
+-7.92 USD -7.92 USD
+-7.92 EUR -7.92 EUR
+-7.926 USD -7.926 USD
+USD -7.926 fail USD
+-7.92USD fail USD
+USD-7.92 fail USD
+-8 USD -8 USD
+67 USD 67 USD
+53.45$ fail USD
+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 fail USD
+US Dollar53.45 53.45 USD
+US Dollat53.45 fail USD
+53.45US Dollar fail USD
+
+
+test parse currency long
+set pattern 0.00 \u00a4\u00a4\u00a4;(#) \u00a4\u00a4\u00a4
+set locale en_US
+begin
+parse output outputCurrency breaks
+$53.45 53.45 USD
+53.45 USD 53.45 USD
+USD 53.45 53.45 USD J
+// See ticket 11735
+53.45USD fail USD J
+USD53.45 53.45 USD
+(7.92) USD -7.92 USD
+(7.926) USD -7.926 USD
+(7.926 USD) fail USD
+(USD 7.926) fail USD
+USD (7.926) fail USD
+USD (7.92) fail USD
+(7.92)USD fail USD
+USD(7.92) fail USD
+(8) USD -8 USD
+// See ticket 11735
+-8 USD fail USD J
+67 USD 67 USD
+// See ticket 11735
+53.45$ fail USD J
+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
+// See ticket 11735
+53.45US Dollars fail USD J
+US Dollar53.45 53.45 USD
+US Dollat53.45 fail USD
+// See ticket 11735
+53.45US Dollar fail USD J
+
+
+test parse currency short
+set pattern 0.00 \u00a4;(#) \u00a4
+set locale en_US
+begin
+parse output outputCurrency breaks
+$53.45 53.45 USD
+53.45 USD 53.45 USD
+USD 53.45 53.45 USD J
+53.45USD fail USD
+USD53.45 53.45 USD
+(7.92) USD -7.92 USD
+(7.926) USD -7.926 USD
+(7.926 USD) fail USD
+(USD 7.926) fail USD
+USD (7.926) fail USD
+USD (7.92) fail USD
+(7.92)USD fail USD
+USD(7.92) fail USD
+(8) USD -8 USD
+-8 USD fail USD
+67 USD 67 USD
+53.45$ fail USD
+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 fail USD
+US Dollar53.45 53.45 USD
+US Dollat53.45 fail USD
+53.45US Dollar fail USD
+
+
+test parse currency short prefix
+set pattern \u00a40.00;(\u00a4#)
+set locale en_US
+begin
+parse output outputCurrency breaks
+$53.45 53.45 USD
+53.45 USD fail USD
+USD 53.45 53.45 USD J
+53.45USD fail USD
+USD53.45 53.45 USD
+(7.92) USD fail USD
+(7.926) USD fail USD
+(7.926 USD) fail USD
+(USD 7.926) -7.926 USD J
+USD (7.926) fail USD
+USD (7.92) fail USD
+(7.92)USD fail USD
+USD(7.92) fail USD
+(8) USD fail USD
+-8 USD fail USD
+67 USD fail USD
+53.45$ fail USD
+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 fail USD
+US Dollar53.45 53.45 USD
+53.45US Dollar fail USD
+
+test format foreign currency
+set locale fa_IR
+begin
+pattern format output breaks
+\u00a4\u00a4\u00a4 0.00;\u00a4\u00a4\u00a4 # 1235 \u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 \u06F1\u06F2\u06F3\u06F5 K
+\u00a4\u00a4 0.00;\u00a4\u00a4 -# 1235 IRR \u06F1\u06F2\u06F3\u06F5 K
+\u00a4 0.00;\u00a4 -# 1235 \u0631\u06cc\u0627\u0644 \u06F1\u06F2\u06F3\u06F5 K
+
+test parse foreign currency symbol
+set pattern \u00a4 0.00;\u00a4 -#
+set locale fa_IR
+begin
+parse output outputCurrency
+\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
+IRR 1235 1235 IRR
+\u0631\u06cc\u0627\u0644 1235 1235 IRR
+\u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 1235 1235 IRR
+
+test parse foreign currency ISO
+set pattern \u00a4\u00a4 0.00;\u00a4\u00a4 -#
+set locale fa_IR
+begin
+parse output outputCurrency
+\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
+IRR 1235 1235 IRR
+\u0631\u06cc\u0627\u0644 1235 1235 IRR
+\u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 1235 1235 IRR
+
+test parse foreign currency full
+set pattern \u00a4\u00a4\u00a4 0.00;\u00a4\u00a4\u00a4 -#
+set locale fa_IR
+begin
+parse output outputCurrency
+\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
+IRR 1235 1235 IRR
+\u0631\u06cc\u0627\u0644 1235 1235 IRR
+\u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 1235 1235 IRR
+
+test parse currency with foreign symbols symbol english
+set pattern \u00a4 0.00;\u00a4 (#)
+set locale en_US
+begin
+parse output outputCurrency
+EUR 7.82 7.82 EUR
+\u20ac 7.82 7.82 EUR
+Euro 7.82 7.82 EUR
+Euros 7.82 7.82 EUR
+
+test parse currency with foreign symbols ISO english
+set pattern \u00a4\u00a4 0.00;\u00a4\u00a4 (#)
+set locale en_US
+begin
+parse output outputCurrency
+EUR 7.82 7.82 EUR
+\u20ac 7.82 7.82 EUR
+Euro 7.82 7.82 EUR
+Euros 7.82 7.82 EUR
+
+test parse currency with foreign symbols full english
+set pattern \u00a4\u00a4\u00a4 0.00;\u00a4\u00a4\u00a4 (#)
+set locale en_US
+begin
+parse output outputCurrency
+EUR 7.82 7.82 EUR
+\u20ac 7.82 7.82 EUR
+Euro 7.82 7.82 EUR
+Euros 7.82 7.82 EUR
+
+test parse currency ISO strict
+set pattern 0.00 \u00a4\u00a4;(#) \u00a4\u00a4
+set locale en_US
+set lenient 0
+begin
+parse output outputCurrency breaks
+$53.45 53.45 USD
+53.45 USD 53.45 USD
+USD 53.45 fail USD
+53.45USD fail USD
+USD53.45 53.45 USD
+(7.92) USD -7.92 USD
+(7.92) EUR -7.92 EUR
+(7.926) USD -7.926 USD
+(7.926 USD) fail USD
+(USD 7.926) fail USD
+USD (7.926) fail USD
+USD (7.92) fail USD
+(7.92)USD fail USD
+USD(7.92) fail USD
+(8) USD -8 USD
+-8 USD fail USD
+67 USD 67 USD
+53.45$ fail USD
+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
+53.45US Dollars fail USD
+US Dollar53.45 53.45 USD
+US Dollat53.45 fail USD
+53.45US Dollar fail USD
+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 Dollars(53.45) fail USD
+(53.45)US Dollars fail USD
+US Dollar(53.45) fail USD
+US Dollat(53.45) fail USD
+(53.45)US Dollar fail USD
+
+test ticket 10436
+set locale en
+set roundingMode ceiling
+set minFractionDigits 0
+set maxFractionDigits 0
+begin
+format output breaks
+-0.99 -0 JK
+
« 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