{
  "note": "Assert on the pattern, the separator code points and the fraction-digit counts. The rendered example strings are illustrative: CLDR revises month abbreviations and spacing between releases, so a byte comparison against them will eventually fail for reasons that are not your bug.",
  "sampleValue": 1234567.89,
  "locales": [
    {
      "locale": "en-US",
      "language": "English (United States)",
      "groupSeparatorName": "COMMA",
      "groupSeparator": ",",
      "decimalSeparator": ".",
      "formatted": "1,234,567.89",
      "numberingSystem": "latn"
    },
    {
      "locale": "en-GB",
      "language": "English (United Kingdom)",
      "groupSeparatorName": "COMMA",
      "groupSeparator": ",",
      "decimalSeparator": ".",
      "formatted": "1,234,567.89",
      "numberingSystem": "latn"
    },
    {
      "locale": "en-IN",
      "language": "English (India)",
      "groupSeparatorName": "COMMA (3,2,2 grouping)",
      "groupSeparator": ",",
      "decimalSeparator": ".",
      "formatted": "12,34,567.89",
      "numberingSystem": "latn"
    },
    {
      "locale": "de-DE",
      "language": "German (Germany)",
      "groupSeparatorName": "FULL STOP",
      "groupSeparator": ".",
      "decimalSeparator": ",",
      "formatted": "1.234.567,89",
      "numberingSystem": "latn"
    },
    {
      "locale": "de-CH",
      "language": "German (Switzerland)",
      "groupSeparatorName": "U+2019 RIGHT SINGLE QUOTATION MARK",
      "groupSeparator": "’",
      "decimalSeparator": ".",
      "formatted": "1’234’567.89",
      "numberingSystem": "latn"
    },
    {
      "locale": "fr-FR",
      "language": "French (France)",
      "groupSeparatorName": "U+202F NARROW NO-BREAK SPACE",
      "groupSeparator": " ",
      "decimalSeparator": ",",
      "formatted": "1 234 567,89",
      "numberingSystem": "latn"
    },
    {
      "locale": "es-ES",
      "language": "Spanish (Spain)",
      "groupSeparatorName": "FULL STOP",
      "groupSeparator": ".",
      "decimalSeparator": ",",
      "formatted": "1.234.567,89",
      "numberingSystem": "latn"
    },
    {
      "locale": "pl-PL",
      "language": "Polish (Poland)",
      "groupSeparatorName": "U+00A0 NO-BREAK SPACE",
      "groupSeparator": " ",
      "decimalSeparator": ",",
      "formatted": "1 234 567,89",
      "numberingSystem": "latn"
    },
    {
      "locale": "ru-RU",
      "language": "Russian (Russia)",
      "groupSeparatorName": "U+00A0 NO-BREAK SPACE",
      "groupSeparator": " ",
      "decimalSeparator": ",",
      "formatted": "1 234 567,89",
      "numberingSystem": "latn"
    },
    {
      "locale": "ja-JP",
      "language": "Japanese (Japan)",
      "groupSeparatorName": "COMMA",
      "groupSeparator": ",",
      "decimalSeparator": ".",
      "formatted": "1,234,567.89",
      "numberingSystem": "latn"
    },
    {
      "locale": "zh-CN",
      "language": "Chinese (Simplified, China)",
      "groupSeparatorName": "COMMA",
      "groupSeparator": ",",
      "decimalSeparator": ".",
      "formatted": "1,234,567.89",
      "numberingSystem": "latn"
    },
    {
      "locale": "ar-EG",
      "language": "Arabic (Egypt)",
      "groupSeparatorName": "U+066C ARABIC THOUSANDS SEPARATOR",
      "groupSeparator": "٬",
      "decimalSeparator": "٫",
      "formatted": "١٬٢٣٤٬٥٦٧٫٨٩",
      "numberingSystem": "arab"
    }
  ],
  "traps": [
    {
      "id": "min-grouping-digits",
      "summary": "es-ES sets minimumGroupingDigits=2, so a four-digit integer is NOT grouped.",
      "locale": "es-ES",
      "input": 1234,
      "rendered": "1234",
      "contrast": {
        "locale": "en-US",
        "rendered": "1,234"
      },
      "why": "Every sample in this fixture uses seven digits precisely so this rule never silently changes an expected value; test it here, on purpose, instead."
    },
    {
      "id": "non-ascii-separators",
      "summary": "Four locales here group with a character that is not U+0020 and not a comma.",
      "characters": [
        {
          "codePoint": "U+00A0",
          "name": "NO-BREAK SPACE",
          "usedBy": "pl-PL, ru-RU"
        },
        {
          "codePoint": "U+202F",
          "name": "NARROW NO-BREAK SPACE",
          "usedBy": "fr-FR"
        },
        {
          "codePoint": "U+2019",
          "name": "RIGHT SINGLE QUOTATION MARK",
          "usedBy": "de-CH"
        },
        {
          "codePoint": "U+066C",
          "name": "ARABIC THOUSANDS SEPARATOR",
          "usedBy": "ar-EG"
        }
      ],
      "why": "A parser that strips only ASCII spaces and commas fails on all four, usually by returning 1 instead of 1234567."
    },
    {
      "id": "native-digits",
      "summary": "ar-EG defaults to the 'arab' numbering system, so the DIGITS themselves differ.",
      "latnDigits": "0123456789",
      "arabDigits": "٠١٢٣٤٥٦٧٨٩",
      "why": "int() on the rendered string throws; the digits must be mapped back to ASCII first."
    },
    {
      "id": "decimal-comma",
      "summary": "Seven of the twelve locales here use a comma as the DECIMAL separator.",
      "why": "A CSV of localized numbers cannot be comma-delimited without quoting, and float('1,5') raises rather than returning 1.5."
    }
  ]
}
