{
  "version": "v1",
  "kind": "numbers",
  "description": "Locale number, currency, date and time formats, plus floating-point traps",
  "count": 48,
  "seed": null,
  "items": [
    {
      "id": "numbers-01",
      "text": "1,234,567.89",
      "note": "Number, US English",
      "lang": "en-US",
      "length": {
        "codepoints": 12,
        "utf16_units": 12,
        "utf8_bytes": 12
      },
      "codepoints": "U+0031 U+002C U+0032 U+0033 U+0034 U+002C U+0035 U+0036 U+0037 U+002E U+0038 U+0039"
    },
    {
      "id": "numbers-02",
      "text": "1.234.567,89",
      "note": "Number, German",
      "lang": "de-DE",
      "length": {
        "codepoints": 12,
        "utf16_units": 12,
        "utf8_bytes": 12
      },
      "codepoints": "U+0031 U+002E U+0032 U+0033 U+0034 U+002E U+0035 U+0036 U+0037 U+002C U+0038 U+0039"
    },
    {
      "id": "numbers-03",
      "text": "1 234 567,89",
      "note": "Number, French (narrow no-break space U+202F)",
      "lang": "fr-FR",
      "length": {
        "codepoints": 12,
        "utf16_units": 12,
        "utf8_bytes": 16
      },
      "codepoints": "U+0031 U+202F U+0032 U+0033 U+0034 U+202F U+0035 U+0036 U+0037 U+002C U+0038 U+0039"
    },
    {
      "id": "numbers-04",
      "text": "1 234 567,89",
      "note": "Number, Swedish (no-break space U+00A0)",
      "lang": "sv-SE",
      "length": {
        "codepoints": 12,
        "utf16_units": 12,
        "utf8_bytes": 14
      },
      "codepoints": "U+0031 U+00A0 U+0032 U+0033 U+0034 U+00A0 U+0035 U+0036 U+0037 U+002C U+0038 U+0039"
    },
    {
      "id": "numbers-05",
      "text": "1’234’567.89",
      "note": "Number, Swiss German (apostrophe U+2019)",
      "lang": "de-CH",
      "length": {
        "codepoints": 12,
        "utf16_units": 12,
        "utf8_bytes": 16
      },
      "codepoints": "U+0031 U+2019 U+0032 U+0033 U+0034 U+2019 U+0035 U+0036 U+0037 U+002E U+0038 U+0039"
    },
    {
      "id": "numbers-06",
      "text": "12,34,567.89",
      "note": "Number, Indian grouping (lakh)",
      "lang": "en-IN",
      "length": {
        "codepoints": 12,
        "utf16_units": 12,
        "utf8_bytes": 12
      },
      "codepoints": "U+0031 U+0032 U+002C U+0033 U+0034 U+002C U+0035 U+0036 U+0037 U+002E U+0038 U+0039"
    },
    {
      "id": "numbers-07",
      "text": "١٬٢٣٤٬٥٦٧٫٨٩",
      "note": "Number, Arabic-Indic digits and separators",
      "lang": "ar-EG",
      "length": {
        "codepoints": 12,
        "utf16_units": 12,
        "utf8_bytes": 24
      },
      "codepoints": "U+0661 U+066C U+0662 U+0663 U+0664 U+066C U+0665 U+0666 U+0667 U+066B U+0668 U+0669"
    },
    {
      "id": "numbers-08",
      "text": "۱٬۲۳۴٬۵۶۷٫۸۹",
      "note": "Number, Persian digits",
      "lang": "fa-IR",
      "length": {
        "codepoints": 12,
        "utf16_units": 12,
        "utf8_bytes": 24
      },
      "codepoints": "U+06F1 U+066C U+06F2 U+06F3 U+06F4 U+066C U+06F5 U+06F6 U+06F7 U+066B U+06F8 U+06F9"
    },
    {
      "id": "numbers-09",
      "text": "१२,३४,५६७.८९",
      "note": "Number, Devanagari digits with lakh grouping",
      "lang": "hi-IN",
      "length": {
        "codepoints": 12,
        "utf16_units": 12,
        "utf8_bytes": 30
      },
      "codepoints": "U+0967 U+0968 U+002C U+0969 U+096A U+002C U+096B U+096C U+096D U+002E U+096E U+096F"
    },
    {
      "id": "numbers-10",
      "text": "１２３，４５６",
      "note": "Number, full-width digits",
      "lang": "ja-JP",
      "length": {
        "codepoints": 7,
        "utf16_units": 7,
        "utf8_bytes": 21
      },
      "codepoints": "U+FF11 U+FF12 U+FF13 U+FF0C U+FF14 U+FF15 U+FF16"
    },
    {
      "id": "numbers-11",
      "text": "$1,234.56",
      "note": "Currency, US dollars",
      "lang": "en-US",
      "length": {
        "codepoints": 9,
        "utf16_units": 9,
        "utf8_bytes": 9
      },
      "codepoints": "U+0024 U+0031 U+002C U+0032 U+0033 U+0034 U+002E U+0035 U+0036"
    },
    {
      "id": "numbers-12",
      "text": "1.234,56 €",
      "note": "Currency, euro in Germany",
      "lang": "de-DE",
      "length": {
        "codepoints": 10,
        "utf16_units": 10,
        "utf8_bytes": 13
      },
      "codepoints": "U+0031 U+002E U+0032 U+0033 U+0034 U+002C U+0035 U+0036 U+00A0 U+20AC"
    },
    {
      "id": "numbers-13",
      "text": "€ 1.234,56",
      "note": "Currency, euro in the Netherlands (symbol first)",
      "lang": "nl-NL",
      "length": {
        "codepoints": 10,
        "utf16_units": 10,
        "utf8_bytes": 13
      },
      "codepoints": "U+20AC U+00A0 U+0031 U+002E U+0032 U+0033 U+0034 U+002C U+0035 U+0036"
    },
    {
      "id": "numbers-14",
      "text": "1 234,56 kr",
      "note": "Currency, Swedish krona",
      "lang": "sv-SE",
      "length": {
        "codepoints": 11,
        "utf16_units": 11,
        "utf8_bytes": 13
      },
      "codepoints": "U+0031 U+00A0 U+0032 U+0033 U+0034 U+002C U+0035 U+0036 U+00A0 U+006B U+0072"
    },
    {
      "id": "numbers-15",
      "text": "kr 1 234,56",
      "note": "Currency, Norwegian krone (symbol first)",
      "lang": "nb-NO",
      "length": {
        "codepoints": 11,
        "utf16_units": 11,
        "utf8_bytes": 13
      },
      "codepoints": "U+006B U+0072 U+00A0 U+0031 U+00A0 U+0032 U+0033 U+0034 U+002C U+0035 U+0036"
    },
    {
      "id": "numbers-16",
      "text": "¥1,235",
      "note": "Currency, Japanese yen (no decimals)",
      "lang": "ja-JP",
      "length": {
        "codepoints": 6,
        "utf16_units": 6,
        "utf8_bytes": 7
      },
      "codepoints": "U+00A5 U+0031 U+002C U+0032 U+0033 U+0035"
    },
    {
      "id": "numbers-17",
      "text": "₹12,34,567.89",
      "note": "Currency, Indian rupee",
      "lang": "en-IN",
      "length": {
        "codepoints": 13,
        "utf16_units": 13,
        "utf8_bytes": 15
      },
      "codepoints": "U+20B9 U+0031 U+0032 U+002C U+0033 U+0034 U+002C U+0035 U+0036 U+0037 U+002E U+0038 U+0039"
    },
    {
      "id": "numbers-18",
      "text": "CHF 1’234.50",
      "note": "Currency, Swiss franc",
      "lang": "de-CH",
      "length": {
        "codepoints": 12,
        "utf16_units": 12,
        "utf8_bytes": 15
      },
      "codepoints": "U+0043 U+0048 U+0046 U+00A0 U+0031 U+2019 U+0032 U+0033 U+0034 U+002E U+0035 U+0030"
    },
    {
      "id": "numbers-19",
      "text": "R$ 1.234,56",
      "note": "Currency, Brazilian real",
      "lang": "pt-BR",
      "length": {
        "codepoints": 11,
        "utf16_units": 11,
        "utf8_bytes": 12
      },
      "codepoints": "U+0052 U+0024 U+00A0 U+0031 U+002E U+0032 U+0033 U+0034 U+002C U+0035 U+0036"
    },
    {
      "id": "numbers-20",
      "text": "−1 234,56 kr",
      "note": "Negative with real minus sign U+2212 (not a hyphen)",
      "lang": "sv-SE",
      "length": {
        "codepoints": 12,
        "utf16_units": 12,
        "utf8_bytes": 16
      },
      "codepoints": "U+2212 U+0031 U+00A0 U+0032 U+0033 U+0034 U+002C U+0035 U+0036 U+00A0 U+006B U+0072"
    },
    {
      "id": "numbers-21",
      "text": "(1,234.56)",
      "note": "Accounting-style negative",
      "lang": "en-US",
      "length": {
        "codepoints": 10,
        "utf16_units": 10,
        "utf8_bytes": 10
      },
      "codepoints": "U+0028 U+0031 U+002C U+0032 U+0033 U+0034 U+002E U+0035 U+0036 U+0029"
    },
    {
      "id": "numbers-22",
      "text": "12 %",
      "note": "Percent, French (narrow no-break space)",
      "lang": "fr-FR",
      "length": {
        "codepoints": 4,
        "utf16_units": 4,
        "utf8_bytes": 6
      },
      "codepoints": "U+0031 U+0032 U+202F U+0025"
    },
    {
      "id": "numbers-23",
      "text": "١٢٪",
      "note": "Percent, Arabic-Indic",
      "lang": "ar-EG",
      "length": {
        "codepoints": 3,
        "utf16_units": 3,
        "utf8_bytes": 6
      },
      "codepoints": "U+0661 U+0662 U+066A"
    },
    {
      "id": "numbers-24",
      "text": "2026-10-08",
      "note": "Date, ISO 8601",
      "lang": null,
      "length": {
        "codepoints": 10,
        "utf16_units": 10,
        "utf8_bytes": 10
      },
      "codepoints": "U+0032 U+0030 U+0032 U+0036 U+002D U+0031 U+0030 U+002D U+0030 U+0038"
    },
    {
      "id": "numbers-25",
      "text": "10/8/2026",
      "note": "Date, US (month first)",
      "lang": "en-US",
      "length": {
        "codepoints": 9,
        "utf16_units": 9,
        "utf8_bytes": 9
      },
      "codepoints": "U+0031 U+0030 U+002F U+0038 U+002F U+0032 U+0030 U+0032 U+0036"
    },
    {
      "id": "numbers-26",
      "text": "08/10/2026",
      "note": "Date, UK (day first): same digits, different date",
      "lang": "en-GB",
      "length": {
        "codepoints": 10,
        "utf16_units": 10,
        "utf8_bytes": 10
      },
      "codepoints": "U+0030 U+0038 U+002F U+0031 U+0030 U+002F U+0032 U+0030 U+0032 U+0036"
    },
    {
      "id": "numbers-27",
      "text": "08.10.2026",
      "note": "Date, German",
      "lang": "de-DE",
      "length": {
        "codepoints": 10,
        "utf16_units": 10,
        "utf8_bytes": 10
      },
      "codepoints": "U+0030 U+0038 U+002E U+0031 U+0030 U+002E U+0032 U+0030 U+0032 U+0036"
    },
    {
      "id": "numbers-28",
      "text": "8.10.2026",
      "note": "Date, Finnish",
      "lang": "fi-FI",
      "length": {
        "codepoints": 9,
        "utf16_units": 9,
        "utf8_bytes": 9
      },
      "codepoints": "U+0038 U+002E U+0031 U+0030 U+002E U+0032 U+0030 U+0032 U+0036"
    },
    {
      "id": "numbers-29",
      "text": "8. okt. 2026",
      "note": "Date, Norwegian",
      "lang": "nb-NO",
      "length": {
        "codepoints": 12,
        "utf16_units": 12,
        "utf8_bytes": 12
      },
      "codepoints": "U+0038 U+002E U+0020 U+006F U+006B U+0074 U+002E U+0020 U+0032 U+0030 U+0032 U+0036"
    },
    {
      "id": "numbers-30",
      "text": "jeudi 8 octobre 2026",
      "note": "Date, French long form",
      "lang": "fr-FR",
      "length": {
        "codepoints": 20,
        "utf16_units": 20,
        "utf8_bytes": 20
      },
      "codepoints": "U+006A U+0065 U+0075 U+0064 U+0069 U+0020 U+0038 U+0020 U+006F U+0063 U+0074 U+006F U+0062 U+0072 U+0065 U+0020 U+0032 U+0030 U+0032 U+0036"
    },
    {
      "id": "numbers-31",
      "text": "2026年10月8日",
      "note": "Date, Japanese / Chinese",
      "lang": "ja-JP",
      "length": {
        "codepoints": 10,
        "utf16_units": 10,
        "utf8_bytes": 16
      },
      "codepoints": "U+0032 U+0030 U+0032 U+0036 U+5E74 U+0031 U+0030 U+6708 U+0038 U+65E5"
    },
    {
      "id": "numbers-32",
      "text": "2026. 10. 8.",
      "note": "Date, Korean",
      "lang": "ko-KR",
      "length": {
        "codepoints": 12,
        "utf16_units": 12,
        "utf8_bytes": 12
      },
      "codepoints": "U+0032 U+0030 U+0032 U+0036 U+002E U+0020 U+0031 U+0030 U+002E U+0020 U+0038 U+002E"
    },
    {
      "id": "numbers-33",
      "text": "٨‏/١٠‏/٢٠٢٦",
      "note": "Date, Arabic with RLM marks (U+200F)",
      "lang": "ar-EG",
      "length": {
        "codepoints": 11,
        "utf16_units": 11,
        "utf8_bytes": 22
      },
      "codepoints": "U+0668 U+200F U+002F U+0661 U+0660 U+200F U+002F U+0662 U+0660 U+0662 U+0666"
    },
    {
      "id": "numbers-34",
      "text": "8 ต.ค. 2569",
      "note": "Date, Thai Buddhist calendar (year 2569)",
      "lang": "th-TH",
      "length": {
        "codepoints": 11,
        "utf16_units": 11,
        "utf8_bytes": 15
      },
      "codepoints": "U+0038 U+0020 U+0E15 U+002E U+0E04 U+002E U+0020 U+0032 U+0035 U+0036 U+0039"
    },
    {
      "id": "numbers-35",
      "text": "14:05",
      "note": "Time, 24-hour",
      "lang": null,
      "length": {
        "codepoints": 5,
        "utf16_units": 5,
        "utf8_bytes": 5
      },
      "codepoints": "U+0031 U+0034 U+003A U+0030 U+0035"
    },
    {
      "id": "numbers-36",
      "text": "2:05 PM",
      "note": "Time, 12-hour with space",
      "lang": "en-US",
      "length": {
        "codepoints": 7,
        "utf16_units": 7,
        "utf8_bytes": 7
      },
      "codepoints": "U+0032 U+003A U+0030 U+0035 U+0020 U+0050 U+004D"
    },
    {
      "id": "numbers-37",
      "text": "2:05 PM",
      "note": "Time, 12-hour with narrow no-break space (ICU 72+ output, breaks naive parsers)",
      "lang": "en-US",
      "length": {
        "codepoints": 7,
        "utf16_units": 7,
        "utf8_bytes": 9
      },
      "codepoints": "U+0032 U+003A U+0030 U+0035 U+202F U+0050 U+004D"
    },
    {
      "id": "numbers-38",
      "text": "14.05",
      "note": "Time, Finnish (dot separator)",
      "lang": "fi-FI",
      "length": {
        "codepoints": 5,
        "utf16_units": 5,
        "utf8_bytes": 5
      },
      "codepoints": "U+0031 U+0034 U+002E U+0030 U+0035"
    },
    {
      "id": "numbers-39",
      "text": "午後2時05分",
      "note": "Time, Japanese",
      "lang": "ja-JP",
      "length": {
        "codepoints": 7,
        "utf16_units": 7,
        "utf8_bytes": 15
      },
      "codepoints": "U+5348 U+5F8C U+0032 U+6642 U+0030 U+0035 U+5206"
    },
    {
      "id": "numbers-40",
      "text": "9007199254740993",
      "note": "2^53 + 1: not exactly representable as a double",
      "lang": null,
      "length": {
        "codepoints": 16,
        "utf16_units": 16,
        "utf8_bytes": 16
      },
      "codepoints": "U+0039 U+0030 U+0030 U+0037 U+0031 U+0039 U+0039 U+0032 U+0035 U+0034 U+0037 U+0034 U+0030 U+0039 U+0039 U+0033"
    },
    {
      "id": "numbers-41",
      "text": "0.30000000000000004",
      "note": "0.1 + 0.2 in binary floating point",
      "lang": null,
      "length": {
        "codepoints": 19,
        "utf16_units": 19,
        "utf8_bytes": 19
      },
      "codepoints": "U+0030 U+002E U+0033 U+0030 U+0030 U+0030 U+0030 U+0030 U+0030 U+0030 U+0030 U+0030 U+0030 U+0030 U+0030 U+0030 U+0030 U+0030 U+0034"
    },
    {
      "id": "numbers-42",
      "text": "1e309",
      "note": "Overflows to Infinity as a double",
      "lang": null,
      "length": {
        "codepoints": 5,
        "utf16_units": 5,
        "utf8_bytes": 5
      },
      "codepoints": "U+0031 U+0065 U+0033 U+0030 U+0039"
    },
    {
      "id": "numbers-43",
      "text": "-0",
      "note": "Negative zero",
      "lang": null,
      "length": {
        "codepoints": 2,
        "utf16_units": 2,
        "utf8_bytes": 2
      },
      "codepoints": "U+002D U+0030"
    },
    {
      "id": "numbers-44",
      "text": "NaN",
      "note": "Not a number (as text)",
      "lang": null,
      "length": {
        "codepoints": 3,
        "utf16_units": 3,
        "utf8_bytes": 3
      },
      "codepoints": "U+004E U+0061 U+004E"
    },
    {
      "id": "numbers-45",
      "text": "6.02214076e23",
      "note": "Scientific notation",
      "lang": null,
      "length": {
        "codepoints": 13,
        "utf16_units": 13,
        "utf8_bytes": 13
      },
      "codepoints": "U+0036 U+002E U+0030 U+0032 U+0032 U+0031 U+0034 U+0030 U+0037 U+0036 U+0065 U+0032 U+0033"
    },
    {
      "id": "numbers-46",
      "text": "007",
      "note": "Leading zeros (lost when parsed as a number)",
      "lang": null,
      "length": {
        "codepoints": 3,
        "utf16_units": 3,
        "utf8_bytes": 3
      },
      "codepoints": "U+0030 U+0030 U+0037"
    },
    {
      "id": "numbers-47",
      "text": "1_000_000",
      "note": "Underscore digit separators",
      "lang": null,
      "length": {
        "codepoints": 9,
        "utf16_units": 9,
        "utf8_bytes": 9
      },
      "codepoints": "U+0031 U+005F U+0030 U+0030 U+0030 U+005F U+0030 U+0030 U+0030"
    },
    {
      "id": "numbers-48",
      "text": "Ⅻ ½ ⅞ ² ₃",
      "note": "Roman numeral, fractions, superscript and subscript digits",
      "lang": null,
      "length": {
        "codepoints": 9,
        "utf16_units": 9,
        "utf8_bytes": 17
      },
      "codepoints": "U+216B U+0020 U+00BD U+0020 U+215E U+0020 U+00B2 U+0020 U+2083"
    }
  ]
}