// 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 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
12	12.000
12345	2345.000
72.1234	72.1234

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
// This should round to nearest 0.05E4 but instead round to nearest 0.05
0.05E0	12301.2	1,25E4	CJK
##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 C & J ICU adds padding as if 'EUR' is only 2 chars (2 * 0xa4)
\u00a4\u00a4 **####0.00	433.0	EUR *433,00	CJK
// In C & J ICU adds padding as if 'EUR' is only 2 chars (2 * 0xa4)
\u00a4\u00a4 **#######0	433.0	EUR *433,00	CJK

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 is supported in the new C code.
1000	1000	CJK
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	CJK	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 both C and J do 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	CJK
1	1	3	3.E+008	CJK
1	0	1	3.E8	CJ
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	CJ	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 ICU4C and ICU4J See ticket 11671
**0,000	**0,000		CJK
**##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



