[
{
"name": "pounds with a thousands comma",
"args": [
"£1,234.50",
"GBP",
"comma-dot"
],
"expect": {
"minor": 123450,
"currency": "GBP"
}
},
{
"name": "euros written the German way, symbol after",
"args": [
"1.234,50 €",
"EUR",
"dot-comma"
],
"expect": {
"minor": 123450,
"currency": "EUR"
}
},
{
"name": "euros written the Irish way",
"args": [
"€1,234.50",
"EUR",
"comma-dot"
],
"expect": {
"minor": 123450,
"currency": "EUR"
}
},
{
"name": "millions in the German style",
"args": [
"1.234.567,89 €",
"EUR",
"dot-comma"
],
"expect": {
"minor": 123456789,
"currency": "EUR"
}
},
{
"name": "no grouping and one decimal digit",
"args": [
"1234.5",
"GBP",
"comma-dot"
],
"expect": {
"minor": 123450,
"currency": "GBP"
}
},
{
"name": "whole pounds",
"args": [
"£5",
"GBP",
"comma-dot"
],
"expect": {
"minor": 500,
"currency": "GBP"
}
},
{
"name": "pence only",
"args": [
"£0.05",
"GBP",
"comma-dot"
],
"expect": {
"minor": 5,
"currency": "GBP"
}
},
{
"name": "minus before the symbol",
"args": [
"-£12.34",
"GBP",
"comma-dot"
],
"expect": {
"minor": -1234,
"currency": "GBP"
}
},
{
"name": "minus after the symbol",
"args": [
"£-12.34",
"GBP",
"comma-dot"
],
"expect": {
"minor": -1234,
"currency": "GBP"
}
},
{
"name": "negative zero is zero",
"args": [
"-0.00",
"GBP",
"comma-dot"
],
"expect": {
"minor": 0,
"currency": "GBP"
}
},
{
"name": "yen have no decimal places",
"args": [
"¥1,500",
"JPY",
"comma-dot"
],
"expect": {
"minor": 1500,
"currency": "JPY"
}
},
{
"name": "dinar have three decimal places",
"args": [
"KD 1.500",
"KWD",
"comma-dot"
],
"expect": {
"minor": 1500,
"currency": "KWD"
}
},
{
"name": "Swiss apostrophe grouping with the ISO code",
"args": [
"CHF 1'234'567.89",
"CHF",
"apostrophe-dot"
],
"expect": {
"minor": 123456789,
"currency": "CHF"
}
},
{
"name": "Swedish space grouping, trailing symbol",
"args": [
"1 234,56 kr",
"SEK",
"space-comma"
],
"expect": {
"minor": 123456,
"currency": "SEK"
}
},
{
"name": "no-break spaces, as word processors write them",
"args": [
"1 234,56 kr",
"SEK",
"space-comma"
],
"expect": {
"minor": 123456,
"currency": "SEK"
}
},
{
"name": "French narrow no-break space grouping",
"args": [
"1 234,56 €",
"EUR",
"space-comma"
],
"expect": {
"minor": 123456,
"currency": "EUR"
}
},
{
"name": "an ISO code after the number",
"args": [
"10.00 GBP",
"GBP",
"comma-dot"
],
"expect": {
"minor": 1000,
"currency": "GBP"
}
},
{
"name": "a dollar sign is fine once the caller says Canadian dollars",
"args": [
"$5.00",
"CAD",
"comma-dot"
],
"expect": {
"minor": 500,
"currency": "CAD"
}
},
{
"name": "US$ is recognised as one symbol",
"args": [
"US$9.99",
"USD",
"comma-dot"
],
"expect": {
"minor": 999,
"currency": "USD"
}
},
{
"name": "surrounding spaces are ignored",
"args": [
" £5.00 ",
"GBP",
"comma-dot"
],
"expect": {
"minor": 500,
"currency": "GBP"
}
},
{
"name": "one space between symbol and number",
"args": [
"£ 5.00",
"GBP",
"comma-dot"
],
"expect": {
"minor": 500,
"currency": "GBP"
}
},
{
"name": "the largest amount that is still exact",
"args": [
"90071992547409.91",
"GBP",
"comma-dot"
],
"expect": {
"minor": 9007199254740991,
"currency": "GBP"
}
},
{
"name": "three decimals for pounds is refused, not rounded",
"args": [
"£1,234.567",
"GBP",
"comma-dot"
],
"expectError": "too many decimal places"
},
{
"name": "1.500 yen is not fifteen hundred yen in comma-dot style",
"args": [
"1.500",
"JPY",
"comma-dot"
],
"expectError": "too many decimal places"
},
{
"name": "a German thousand read in the UK style is refused, not read as 1.23",
"args": [
"£1.234",
"GBP",
"comma-dot"
],
"expectError": "too many decimal places"
},
{
"name": "lakh grouping is not thousands grouping",
"args": [
"£1,23,456.00",
"GBP",
"comma-dot"
],
"expectError": "is not a valid amount"
},
{
"name": "the other style's separators are refused",
"args": [
"1,234.50",
"EUR",
"dot-comma"
],
"expectError": "is not a valid amount"
},
{
"name": "a symbol for another currency is refused",
"args": [
"€5.00",
"GBP",
"comma-dot"
],
"expectError": "does not match GBP"
},
{
"name": "R$ is Brazilian real, not rand",
"args": [
"R$10,00",
"ZAR",
"space-comma"
],
"expectError": "does not match ZAR"
},
{
"name": "letters are refused",
"args": [
"12abc",
"GBP",
"comma-dot"
],
"expectError": "is not a valid amount"
},
{
"name": "a symbol alone is refused",
"args": [
"£",
"GBP",
"comma-dot"
],
"expectError": "is not a valid amount"
},
{
"name": "an empty string is refused",
"args": [
"",
"GBP",
"comma-dot"
],
"expectError": "is not a valid amount"
},
{
"name": "a trailing decimal point is refused",
"args": [
"£5.",
"GBP",
"comma-dot"
],
"expectError": "is not a valid amount"
},
{
"name": "accounting brackets are refused",
"args": [
"(£5.00)",
"GBP",
"comma-dot"
],
"expectError": "is not a valid amount"
},
{
"name": "beyond 2^53 - 1 minor units is refused",
"args": [
"90071992547409.92",
"GBP",
"comma-dot"
],
"expectError": "amount is too large"
},
{
"name": "an unknown currency is an error",
"args": [
"5.00",
"XYZ",
"comma-dot"
],
"expectError": "no ISO 4217 minor unit"
},
{
"name": "an unknown style is an error",
"args": [
"5.00",
"GBP",
"indian"
],
"expectError": "unknown number style"
}
]