Functional Weave
Code in TypeScript

money.format@1.0.0

vectors.json

1,252 bytes · view raw

[
  { "name": "pounds and pence", "args": [{ "minor": 193299, "currency": "GBP" }], "expect": "£1,932.99" },
  { "name": "groups thousands", "args": [{ "minor": 123456789, "currency": "GBP" }], "expect": "£1,234,567.89" },
  { "name": "under a pound keeps the leading zero", "args": [{ "minor": 5, "currency": "GBP" }], "expect": "£0.05" },
  { "name": "zero", "args": [{ "minor": 0, "currency": "GBP" }], "expect": "£0.00" },
  { "name": "negative amounts lead with the sign", "args": [{ "minor": -1050, "currency": "GBP" }], "expect": "-£10.50" },
  { "name": "yen has no minor unit", "args": [{ "minor": 1500, "currency": "JPY" }], "expect": "¥1,500" },
  { "name": "dinar has three", "args": [{ "minor": 1500, "currency": "KWD" }], "expect": "KD 1.500" },
  { "name": "euro", "args": [{ "minor": 123000, "currency": "EUR" }], "expect": "€1,230.00" },
  { "name": "swiss grouping", "args": [{ "minor": 123456789, "currency": "CHF" }], "expect": "CHF 1'234'567.89" },
  { "name": "trailing symbol and comma decimal", "args": [{ "minor": 123456, "currency": "SEK" }], "expect": "1 234,56 kr" },
  { "name": "an unknown currency is an error, not a guess", "args": [{ "minor": 100, "currency": "XYZ" }], "expectError": "no formatting rules" }
]