Перейти к содержимому
Топаз6.0 · До релиза
Загрузка →

Поиск в документации

Спецификация 6.0

Выберите результат стрелками и нажмите Enter, чтобы открыть его.

Введите имя API, номер диагностики, правило или тему проекта.

    Библиотека · Строки

    string.graphemes

    Return Unicode 16 extended grapheme clusters in source order.

    graphemes() -> Array<string>
    Модуль
    Строки →
    Получатель
    string
    Минимальное число аргументов
    0
    Максимальное число аргументов
    0

    Declaration and parameters

    Ссылка

    Доступность

    Включено по умолчанию · Да

    These types are provided by the language. No module import is required.

    The declarations below describe the standard operations on built-in values.

    Получатель

    string

    Ограничения параметров

    string.graphemes() is a receiver call with no arguments and returns Array<string>. It needs no module import.

    Boundaries follow Unicode 16.0.0 and UAX #29 revision 45, conformance clause UAX29-C1-1. Use the default extended grapheme cluster rules, including GB9a, GB9b, and GB9c, without locale or script tailoring.

    The Unicode version is part of this API contract. The host locale and a newer host Unicode database do not select different boundaries.

    Each returned string is nonempty and appears in source order. Empty input returns an empty array. Joining with an empty separator recovers the input scalar sequence and UTF-8 bytes exactly.

    Segmentation does not normalize, reorder, compose, or decompose stored scalars. Canonically equivalent inputs retain their distinct original spellings.

    Use the returned array's length, indexing, and iteration operations for grapheme counts and access. Existing scalars(), scalar indexing, and byteLength() retain their own units. Direct string iteration remains rejected.

    Grapheme boundaries identify text segments for operations such as selection and deletion. Glyph shaping, physical advances, and line-break opportunities have separate contracts.

    Результат

    The declared result type is Array<string>.

    Эффекты

    Ошибки

    Result and effects

    Ссылка

    Apply the Unicode 16.0.0 default extended grapheme boundary rules from UAX #29 revision 45. Return nonempty string segments without tailoring or normalization. Empty text returns an empty array.

    An explicit text unit supports editing while retaining scalar algorithms. Returning Array<string> reuses array counting, indexing, and iteration.

    Related entries

    Ссылка

    Strings →

    Choose Unicode grapheme clusters explicitly

    Ссылка
    Правилоtopaz.stdlib.contract.string-graphemes.rule

    Choose Unicode grapheme clusters explicitly

    string.graphemes() is a receiver call with no arguments and returns Array<string>. It needs no module import.

    Boundaries follow Unicode 16.0.0 and UAX #29 revision 45, conformance clause UAX29-C1-1. Use the default extended grapheme cluster rules, including GB9a, GB9b, and GB9c, without locale or script tailoring.

    The Unicode version is part of this API contract. The host locale and a newer host Unicode database do not select different boundaries.

    Each returned string is nonempty and appears in source order. Empty input returns an empty array. Joining with an empty separator recovers the input scalar sequence and UTF-8 bytes exactly.

    Segmentation does not normalize, reorder, compose, or decompose stored scalars. Canonically equivalent inputs retain their distinct original spellings.

    Use the returned array's length, indexing, and iteration operations for grapheme counts and access. Existing scalars(), scalar indexing, and byteLength() retain their own units. Direct string iteration remains rejected.

    Grapheme boundaries identify text segments for operations such as selection and deletion. Glyph shaping, physical advances, and line-break opportunities have separate contracts.

    Причина

    Scalars and grapheme clusters serve different text operations. Explicit segmentation keeps one spelling for each unit and supports editing across combining marks, Hangul, and emoji. A pinned Unicode version gives programs the same boundaries on every host. Array<string> reuses the language's counting, indexing, and iteration rules.

    Segment combining text, Hangul, and emoji

    Ссылка
    main.tpzSegment combining text, Hangul, and emojiОткрыть песочницу →
    1. import std.io
    2. let text = "é가👩‍💻🇰🇷"
    3. let clusters: Array<string> = text.graphemes()
    4. io.writeLine("{text.scalars().length}:{clusters.length}")
    5. io.writeLine(clusters.join("|"))
    6. io.writeLine("{clusters.join("") == text}")
    Ожидаемый выводКод завершения 0
    9:4
    é|가|👩‍💻|🇰🇷
    true
    
    $ topaz run main.tpz · Целевой продукт 5.21.3
    Ожидаемый результат

    Ожидаемый результат

    Выполнение завершается. Код завершения 0.

    Ожидаемый стандартный вывод
    1. 9:4
    2. é|가|👩‍💻|🇰🇷
    3. true

    Keep empty text, CRLF, leading marks, and odd regional indicators distinct

    Ссылка
    main.tpzKeep empty text, CRLF, leading marks, and odd regional indicators distinctОткрыть песочницу →
    1. import std.io
    2. for text in (["", "\r\n", "̈́A", "🇰🇷🇯"]) {
    3. let clusters = text.graphemes()
    4. io.writeLine("{clusters.length}:{clusters.join("") == text}")
    5. }
    Ожидаемый выводКод завершения 0
    0:true
    1:true
    2:true
    2:true
    
    $ topaz run main.tpz · Целевой продукт 5.21.3
    Ожидаемый результат

    Ожидаемый результат

    Выполнение завершается. Код завершения 0.

    Ожидаемый стандартный вывод
    1. 0:true
    2. 1:true
    3. 2:true
    4. 2:true

    Preserve decomposed and precomposed text exactly

    Ссылка
    main.tpzPreserve decomposed and precomposed text exactlyОткрыть песочницу →
    1. import std.io
    2. let decomposed = "é"
    3. let precomposed = "é"
    4. let text = decomposed + precomposed
    5. let clusters = text.graphemes()
    6. io.writeLine("{clusters.length}")
    7. io.writeLine("{clusters[0] == decomposed}")
    8. io.writeLine("{clusters[1] == precomposed}")
    9. io.writeLine("{clusters.join("") == text}")
    10. io.writeLine("{decomposed == precomposed}")
    Ожидаемый выводКод завершения 0
    2
    true
    true
    true
    false
    
    $ topaz run main.tpz · Целевой продукт 5.21.3
    Ожидаемый результат

    Ожидаемый результат

    Выполнение завершается. Код завершения 0.

    Ожидаемый стандартный вывод
    1. 2
    2. true
    3. true
    4. true
    5. false

    Apply extended and Unicode 16 conjoining rules

    Ссылка
    main.tpzApply extended and Unicode 16 conjoining rulesОткрыть песочницу →
    1. import std.io
    2. for text in (["؀A", "कि", "क्ष", "𖵩", "A‍B"]) {
    3. let clusters = text.graphemes()
    4. io.writeLine("{clusters.length}:{clusters.join("") == text}")
    5. }
    Ожидаемый выводКод завершения 0
    1:true
    1:true
    1:true
    1:true
    2:true
    
    $ topaz run main.tpz · Целевой продукт 5.21.3
    Ожидаемый результат

    Ожидаемый результат

    Выполнение завершается. Код завершения 0.

    Ожидаемый стандартный вывод
    1. 1:true
    2. 1:true
    3. 1:true
    4. 1:true
    5. 2:true

    The inputs cover Prepend, SpacingMark, Indic conjunct linking, Unicode 16 Kirat Rai conjoining vowels, and a ZWJ without pictographic neighbors.

    Retain scalar and UTF-8 byte observations

    Ссылка
    main.tpzRetain scalar and UTF-8 byte observationsОткрыть песочницу →
    1. import std.io
    2. let text = "é"
    3. io.writeLine("{text.scalars().length}")
    4. io.writeLine("{text.byteLength()}")
    Ожидаемый выводКод завершения 0
    2
    3
    
    $ topaz run main.tpz · Целевой продукт 5.21.3
    Ожидаемый результат

    Ожидаемый результат

    Выполнение завершается. Код завершения 0.

    Ожидаемый стандартный вывод
    1. 2
    2. 3

    Check every published Unicode 16 grapheme test row

    Ссылка
    main.tpzCheck every published Unicode 16 grapheme test rowОткрыть песочницу →
    1. import std.io
    2. import graphemecases0
    3. import graphemecases1
    4. import graphemecases2
    5. import graphemecases3
    6. import graphemecases4
    7. import graphemecases5
    8. import graphemecases6
    9. import graphemecases7
    10. import graphemecases8
    11. import graphemecases9
    12. import graphemecases10
    13. import graphemecases11
    14. import graphemecases12
    15. import graphemecases13
    16. import graphemecases14
    17. import graphemecases15
    18. import graphemecases16
    19. import graphemecases17
    20. let mut failures = 0
    21. failures += graphemecases0.run()
    22. failures += graphemecases1.run()
    23. failures += graphemecases2.run()
    24. failures += graphemecases3.run()
    25. failures += graphemecases4.run()
    26. failures += graphemecases5.run()
    27. failures += graphemecases6.run()
    28. failures += graphemecases7.run()
    29. failures += graphemecases8.run()
    30. failures += graphemecases9.run()
    31. failures += graphemecases10.run()
    32. failures += graphemecases11.run()
    33. failures += graphemecases12.run()
    34. failures += graphemecases13.run()
    35. failures += graphemecases14.run()
    36. failures += graphemecases15.run()
    37. failures += graphemecases16.run()
    38. failures += graphemecases17.run()
    39. if (failures == 0) { io.writeLine("Unicode 16.0.0 grapheme corpus passed") }
    Ожидаемый выводКод завершения 0
    Unicode 16.0.0 grapheme corpus passed
    
    $ topaz run main.tpz · Целевой продукт 5.21.3
    graphemesupport.tpzCheck every published Unicode 16 grapheme test rowОткрыть песочницу →
    1. import std.io
    2. function agrees(input: string, expected: Array<string>) -> bool {
    3. let actual: Array<string> = input.graphemes()
    4. if (actual.length != expected.length) { return false }
    5. if (actual.join("") != input) { return false }
    6. for index in (0..<expected.length) {
    7. if (actual[index] != expected[index]) { return false }
    8. }
    9. true
    10. }
    11. export function checkCase(line: int, input: string, expected: Array<string>) -> int {
    12. if (agrees(input, expected)) { return 0 }
    13. io.writeLine("GraphemeBreakTest line {line} failed")
    14. 1
    15. }
    graphemecases0.tpzCheck every published Unicode 16 grapheme test rowОткрыть песочницу →
    1. import graphemesupport { checkCase }
    2. export function run() -> int {
    3. let mut failures = 0
    4. failures += checkCase(25, " ", [" ", " "])
    5. failures += checkCase(26, " ̈ ", [" ̈", " "])
    6. failures += checkCase(27, " \r", [" ", "\r"])
    7. failures += checkCase(28, " ̈\r", [" ̈", "\r"])
    8. failures += checkCase(29, " \n", [" ", "\n"])
    9. failures += checkCase(30, " ̈\n", [" ̈", "\n"])
    10. failures += checkCase(31, " ", [" ", ""])
    11. failures += checkCase(32, " ̈", [" ̈", ""])
    12. failures += checkCase(33, " ‌", [" ‌"])
    13. failures += checkCase(34, " ̈‌", [" ̈‌"])
    14. failures += checkCase(35, " 🇦", [" ", "🇦"])
    15. failures += checkCase(36, " ̈🇦", [" ̈", "🇦"])
    16. failures += checkCase(37, " ؀", [" ", "؀"])
    17. failures += checkCase(38, " ̈؀", [" ̈", "؀"])
    18. failures += checkCase(39, " ਃ", [" ਃ"])
    19. failures += checkCase(40, " ̈ਃ", [" ̈ਃ"])
    20. failures += checkCase(41, " ᄀ", [" ", "ᄀ"])
    21. failures += checkCase(42, " ̈ᄀ", [" ̈", "ᄀ"])
    22. failures += checkCase(43, " ᅠ", [" ", "ᅠ"])
    23. failures += checkCase(44, " ̈ᅠ", [" ̈", "ᅠ"])
    24. failures += checkCase(45, " ᆨ", [" ", "ᆨ"])
    25. failures += checkCase(46, " ̈ᆨ", [" ̈", "ᆨ"])
    26. failures += checkCase(47, " 가", [" ", "가"])
    27. failures += checkCase(48, " ̈가", [" ̈", "가"])
    28. failures += checkCase(49, " 각", [" ", "각"])
    29. failures += checkCase(50, " ̈각", [" ̈", "각"])
    30. failures += checkCase(51, " ः", [" ः"])
    31. failures += checkCase(52, " ̈ः", [" ̈ः"])
    32. failures += checkCase(53, " ऄ", [" ", "ऄ"])
    33. failures += checkCase(54, " ̈ऄ", [" ̈", "ऄ"])
    34. failures += checkCase(55, " ൎ", [" ", "ൎ"])
    35. failures += checkCase(56, " ̈ൎ", [" ̈", "ൎ"])
    36. failures += checkCase(57, " क", [" ", "क"])
    37. failures += checkCase(58, " ̈क", [" ̈", "क"])
    38. failures += checkCase(59, " ⌚", [" ", "⌚"])
    39. failures += checkCase(60, " ̈⌚", [" ̈", "⌚"])
    40. failures += checkCase(61, " ̀", [" ̀"])
    41. failures += checkCase(62, " ̈̀", [" ̈̀"])
    42. failures += checkCase(63, " ऀ", [" ऀ"])
    43. failures += checkCase(64, " ̈ऀ", [" ̈ऀ"])
    44. failures += checkCase(65, " ्", [" ्"])
    45. failures += checkCase(66, " ्̈", [" ्̈"])
    46. failures += checkCase(67, " ‍", [" ‍"])
    47. failures += checkCase(68, " ̈‍", [" ̈‍"])
    48. failures += checkCase(69, " ͸", [" ", "͸"])
    49. failures += checkCase(70, " ̈͸", [" ̈", "͸"])
    50. failures += checkCase(71, "\r ", ["\r", " "])
    51. failures += checkCase(72, "\r̈ ", ["\r", "̈", " "])
    52. failures += checkCase(73, "\r\r", ["\r", "\r"])
    53. failures += checkCase(74, "\r̈\r", ["\r", "̈", "\r"])
    54. failures += checkCase(75, "\r\n", ["\r\n"])
    55. failures += checkCase(76, "\r̈\n", ["\r", "̈", "\n"])
    56. failures += checkCase(77, "\r", ["\r", ""])
    57. failures += checkCase(78, "\r̈", ["\r", "̈", ""])
    58. failures += checkCase(79, "\r‌", ["\r", "‌"])
    59. failures += checkCase(80, "\r̈‌", ["\r", "̈‌"])
    60. failures += checkCase(81, "\r🇦", ["\r", "🇦"])
    61. failures += checkCase(82, "\r̈🇦", ["\r", "̈", "🇦"])
    62. failures += checkCase(83, "\r؀", ["\r", "؀"])
    63. failures += checkCase(84, "\r̈؀", ["\r", "̈", "؀"])
    64. failures += checkCase(85, "\rਃ", ["\r", "ਃ"])
    65. failures += checkCase(86, "\r̈ਃ", ["\r", "̈ਃ"])
    66. failures += checkCase(87, "\rᄀ", ["\r", "ᄀ"])
    67. failures += checkCase(88, "\r̈ᄀ", ["\r", "̈", "ᄀ"])
    68. failures
    69. }
    graphemecases1.tpzCheck every published Unicode 16 grapheme test rowОткрыть песочницу →
    1. import graphemesupport { checkCase }
    2. export function run() -> int {
    3. let mut failures = 0
    4. failures += checkCase(89, "\rᅠ", ["\r", "ᅠ"])
    5. failures += checkCase(90, "\r̈ᅠ", ["\r", "̈", "ᅠ"])
    6. failures += checkCase(91, "\rᆨ", ["\r", "ᆨ"])
    7. failures += checkCase(92, "\r̈ᆨ", ["\r", "̈", "ᆨ"])
    8. failures += checkCase(93, "\r가", ["\r", "가"])
    9. failures += checkCase(94, "\r̈가", ["\r", "̈", "가"])
    10. failures += checkCase(95, "\r각", ["\r", "각"])
    11. failures += checkCase(96, "\r̈각", ["\r", "̈", "각"])
    12. failures += checkCase(97, "\rः", ["\r", "ः"])
    13. failures += checkCase(98, "\r̈ः", ["\r", "̈ः"])
    14. failures += checkCase(99, "\rऄ", ["\r", "ऄ"])
    15. failures += checkCase(100, "\r̈ऄ", ["\r", "̈", "ऄ"])
    16. failures += checkCase(101, "\rൎ", ["\r", "ൎ"])
    17. failures += checkCase(102, "\r̈ൎ", ["\r", "̈", "ൎ"])
    18. failures += checkCase(103, "\rक", ["\r", "क"])
    19. failures += checkCase(104, "\r̈क", ["\r", "̈", "क"])
    20. failures += checkCase(105, "\r⌚", ["\r", "⌚"])
    21. failures += checkCase(106, "\r̈⌚", ["\r", "̈", "⌚"])
    22. failures += checkCase(107, "\r̀", ["\r", "̀"])
    23. failures += checkCase(108, "\r̈̀", ["\r", "̈̀"])
    24. failures += checkCase(109, "\rऀ", ["\r", "ऀ"])
    25. failures += checkCase(110, "\r̈ऀ", ["\r", "̈ऀ"])
    26. failures += checkCase(111, "\r्", ["\r", "्"])
    27. failures += checkCase(112, "\r्̈", ["\r", "्̈"])
    28. failures += checkCase(113, "\r‍", ["\r", "‍"])
    29. failures += checkCase(114, "\r̈‍", ["\r", "̈‍"])
    30. failures += checkCase(115, "\r͸", ["\r", "͸"])
    31. failures += checkCase(116, "\r̈͸", ["\r", "̈", "͸"])
    32. failures += checkCase(117, "\n ", ["\n", " "])
    33. failures += checkCase(118, "\n̈ ", ["\n", "̈", " "])
    34. failures += checkCase(119, "\n\r", ["\n", "\r"])
    35. failures += checkCase(120, "\n̈\r", ["\n", "̈", "\r"])
    36. failures += checkCase(121, "\n\n", ["\n", "\n"])
    37. failures += checkCase(122, "\n̈\n", ["\n", "̈", "\n"])
    38. failures += checkCase(123, "\n", ["\n", ""])
    39. failures += checkCase(124, "\n̈", ["\n", "̈", ""])
    40. failures += checkCase(125, "\n‌", ["\n", "‌"])
    41. failures += checkCase(126, "\n̈‌", ["\n", "̈‌"])
    42. failures += checkCase(127, "\n🇦", ["\n", "🇦"])
    43. failures += checkCase(128, "\n̈🇦", ["\n", "̈", "🇦"])
    44. failures += checkCase(129, "\n؀", ["\n", "؀"])
    45. failures += checkCase(130, "\n̈؀", ["\n", "̈", "؀"])
    46. failures += checkCase(131, "\nਃ", ["\n", "ਃ"])
    47. failures += checkCase(132, "\n̈ਃ", ["\n", "̈ਃ"])
    48. failures += checkCase(133, "\nᄀ", ["\n", "ᄀ"])
    49. failures += checkCase(134, "\n̈ᄀ", ["\n", "̈", "ᄀ"])
    50. failures += checkCase(135, "\nᅠ", ["\n", "ᅠ"])
    51. failures += checkCase(136, "\n̈ᅠ", ["\n", "̈", "ᅠ"])
    52. failures += checkCase(137, "\nᆨ", ["\n", "ᆨ"])
    53. failures += checkCase(138, "\n̈ᆨ", ["\n", "̈", "ᆨ"])
    54. failures += checkCase(139, "\n가", ["\n", "가"])
    55. failures += checkCase(140, "\n̈가", ["\n", "̈", "가"])
    56. failures += checkCase(141, "\n각", ["\n", "각"])
    57. failures += checkCase(142, "\n̈각", ["\n", "̈", "각"])
    58. failures += checkCase(143, "\nः", ["\n", "ः"])
    59. failures += checkCase(144, "\n̈ः", ["\n", "̈ः"])
    60. failures += checkCase(145, "\nऄ", ["\n", "ऄ"])
    61. failures += checkCase(146, "\n̈ऄ", ["\n", "̈", "ऄ"])
    62. failures += checkCase(147, "\nൎ", ["\n", "ൎ"])
    63. failures += checkCase(148, "\n̈ൎ", ["\n", "̈", "ൎ"])
    64. failures += checkCase(149, "\nक", ["\n", "क"])
    65. failures += checkCase(150, "\n̈क", ["\n", "̈", "क"])
    66. failures += checkCase(151, "\n⌚", ["\n", "⌚"])
    67. failures += checkCase(152, "\n̈⌚", ["\n", "̈", "⌚"])
    68. failures
    69. }
    graphemecases2.tpzCheck every published Unicode 16 grapheme test rowОткрыть песочницу →
    1. import graphemesupport { checkCase }
    2. export function run() -> int {
    3. let mut failures = 0
    4. failures += checkCase(153, "\ǹ", ["\n", "̀"])
    5. failures += checkCase(154, "\n̈̀", ["\n", "̈̀"])
    6. failures += checkCase(155, "\nऀ", ["\n", "ऀ"])
    7. failures += checkCase(156, "\n̈ऀ", ["\n", "̈ऀ"])
    8. failures += checkCase(157, "\n्", ["\n", "्"])
    9. failures += checkCase(158, "\n्̈", ["\n", "्̈"])
    10. failures += checkCase(159, "\n‍", ["\n", "‍"])
    11. failures += checkCase(160, "\n̈‍", ["\n", "̈‍"])
    12. failures += checkCase(161, "\n͸", ["\n", "͸"])
    13. failures += checkCase(162, "\n̈͸", ["\n", "̈", "͸"])
    14. failures += checkCase(163, " ", ["", " "])
    15. failures += checkCase(164, "̈ ", ["", "̈", " "])
    16. failures += checkCase(165, "\r", ["", "\r"])
    17. failures += checkCase(166, "̈\r", ["", "̈", "\r"])
    18. failures += checkCase(167, "\n", ["", "\n"])
    19. failures += checkCase(168, "̈\n", ["", "̈", "\n"])
    20. failures += checkCase(169, "", ["", ""])
    21. failures += checkCase(170, "̈", ["", "̈", ""])
    22. failures += checkCase(171, "‌", ["", "‌"])
    23. failures += checkCase(172, "̈‌", ["", "̈‌"])
    24. failures += checkCase(173, "🇦", ["", "🇦"])
    25. failures += checkCase(174, "̈🇦", ["", "̈", "🇦"])
    26. failures += checkCase(175, "؀", ["", "؀"])
    27. failures += checkCase(176, "̈؀", ["", "̈", "؀"])
    28. failures += checkCase(177, "ਃ", ["", "ਃ"])
    29. failures += checkCase(178, "̈ਃ", ["", "̈ਃ"])
    30. failures += checkCase(179, "ᄀ", ["", "ᄀ"])
    31. failures += checkCase(180, "̈ᄀ", ["", "̈", "ᄀ"])
    32. failures += checkCase(181, "ᅠ", ["", "ᅠ"])
    33. failures += checkCase(182, "̈ᅠ", ["", "̈", "ᅠ"])
    34. failures += checkCase(183, "ᆨ", ["", "ᆨ"])
    35. failures += checkCase(184, "̈ᆨ", ["", "̈", "ᆨ"])
    36. failures += checkCase(185, "가", ["", "가"])
    37. failures += checkCase(186, "̈가", ["", "̈", "가"])
    38. failures += checkCase(187, "각", ["", "각"])
    39. failures += checkCase(188, "̈각", ["", "̈", "각"])
    40. failures += checkCase(189, "ः", ["", "ः"])
    41. failures += checkCase(190, "̈ः", ["", "̈ः"])
    42. failures += checkCase(191, "ऄ", ["", "ऄ"])
    43. failures += checkCase(192, "̈ऄ", ["", "̈", "ऄ"])
    44. failures += checkCase(193, "ൎ", ["", "ൎ"])
    45. failures += checkCase(194, "̈ൎ", ["", "̈", "ൎ"])
    46. failures += checkCase(195, "क", ["", "क"])
    47. failures += checkCase(196, "̈क", ["", "̈", "क"])
    48. failures += checkCase(197, "⌚", ["", "⌚"])
    49. failures += checkCase(198, "̈⌚", ["", "̈", "⌚"])
    50. failures += checkCase(199, "̀", ["", "̀"])
    51. failures += checkCase(200, "̈̀", ["", "̈̀"])
    52. failures += checkCase(201, "ऀ", ["", "ऀ"])
    53. failures += checkCase(202, "̈ऀ", ["", "̈ऀ"])
    54. failures += checkCase(203, "्", ["", "्"])
    55. failures += checkCase(204, "्̈", ["", "्̈"])
    56. failures += checkCase(205, "‍", ["", "‍"])
    57. failures += checkCase(206, "̈‍", ["", "̈‍"])
    58. failures += checkCase(207, "͸", ["", "͸"])
    59. failures += checkCase(208, "̈͸", ["", "̈", "͸"])
    60. failures += checkCase(209, "‌ ", ["‌", " "])
    61. failures += checkCase(210, "‌̈ ", ["‌̈", " "])
    62. failures += checkCase(211, "‌\r", ["‌", "\r"])
    63. failures += checkCase(212, "‌̈\r", ["‌̈", "\r"])
    64. failures += checkCase(213, "‌\n", ["‌", "\n"])
    65. failures += checkCase(214, "‌̈\n", ["‌̈", "\n"])
    66. failures += checkCase(215, "‌", ["‌", ""])
    67. failures += checkCase(216, "‌̈", ["‌̈", ""])
    68. failures
    69. }
    graphemecases3.tpzCheck every published Unicode 16 grapheme test rowОткрыть песочницу →
    1. import graphemesupport { checkCase }
    2. export function run() -> int {
    3. let mut failures = 0
    4. failures += checkCase(217, "‌‌", ["‌‌"])
    5. failures += checkCase(218, "‌̈‌", ["‌̈‌"])
    6. failures += checkCase(219, "‌🇦", ["‌", "🇦"])
    7. failures += checkCase(220, "‌̈🇦", ["‌̈", "🇦"])
    8. failures += checkCase(221, "‌؀", ["‌", "؀"])
    9. failures += checkCase(222, "‌̈؀", ["‌̈", "؀"])
    10. failures += checkCase(223, "‌ਃ", ["‌ਃ"])
    11. failures += checkCase(224, "‌̈ਃ", ["‌̈ਃ"])
    12. failures += checkCase(225, "‌ᄀ", ["‌", "ᄀ"])
    13. failures += checkCase(226, "‌̈ᄀ", ["‌̈", "ᄀ"])
    14. failures += checkCase(227, "‌ᅠ", ["‌", "ᅠ"])
    15. failures += checkCase(228, "‌̈ᅠ", ["‌̈", "ᅠ"])
    16. failures += checkCase(229, "‌ᆨ", ["‌", "ᆨ"])
    17. failures += checkCase(230, "‌̈ᆨ", ["‌̈", "ᆨ"])
    18. failures += checkCase(231, "‌가", ["‌", "가"])
    19. failures += checkCase(232, "‌̈가", ["‌̈", "가"])
    20. failures += checkCase(233, "‌각", ["‌", "각"])
    21. failures += checkCase(234, "‌̈각", ["‌̈", "각"])
    22. failures += checkCase(235, "‌ः", ["‌ः"])
    23. failures += checkCase(236, "‌̈ः", ["‌̈ः"])
    24. failures += checkCase(237, "‌ऄ", ["‌", "ऄ"])
    25. failures += checkCase(238, "‌̈ऄ", ["‌̈", "ऄ"])
    26. failures += checkCase(239, "‌ൎ", ["‌", "ൎ"])
    27. failures += checkCase(240, "‌̈ൎ", ["‌̈", "ൎ"])
    28. failures += checkCase(241, "‌क", ["‌", "क"])
    29. failures += checkCase(242, "‌̈क", ["‌̈", "क"])
    30. failures += checkCase(243, "‌⌚", ["‌", "⌚"])
    31. failures += checkCase(244, "‌̈⌚", ["‌̈", "⌚"])
    32. failures += checkCase(245, "‌̀", ["‌̀"])
    33. failures += checkCase(246, "‌̈̀", ["‌̈̀"])
    34. failures += checkCase(247, "‌ऀ", ["‌ऀ"])
    35. failures += checkCase(248, "‌̈ऀ", ["‌̈ऀ"])
    36. failures += checkCase(249, "‌्", ["‌्"])
    37. failures += checkCase(250, "‌्̈", ["‌्̈"])
    38. failures += checkCase(251, "‌‍", ["‌‍"])
    39. failures += checkCase(252, "‌̈‍", ["‌̈‍"])
    40. failures += checkCase(253, "‌͸", ["‌", "͸"])
    41. failures += checkCase(254, "‌̈͸", ["‌̈", "͸"])
    42. failures += checkCase(255, "🇦 ", ["🇦", " "])
    43. failures += checkCase(256, "🇦̈ ", ["🇦̈", " "])
    44. failures += checkCase(257, "🇦\r", ["🇦", "\r"])
    45. failures += checkCase(258, "🇦̈\r", ["🇦̈", "\r"])
    46. failures += checkCase(259, "🇦\n", ["🇦", "\n"])
    47. failures += checkCase(260, "🇦̈\n", ["🇦̈", "\n"])
    48. failures += checkCase(261, "🇦", ["🇦", ""])
    49. failures += checkCase(262, "🇦̈", ["🇦̈", ""])
    50. failures += checkCase(263, "🇦‌", ["🇦‌"])
    51. failures += checkCase(264, "🇦̈‌", ["🇦̈‌"])
    52. failures += checkCase(265, "🇦🇦", ["🇦🇦"])
    53. failures += checkCase(266, "🇦̈🇦", ["🇦̈", "🇦"])
    54. failures += checkCase(267, "🇦؀", ["🇦", "؀"])
    55. failures += checkCase(268, "🇦̈؀", ["🇦̈", "؀"])
    56. failures += checkCase(269, "🇦ਃ", ["🇦ਃ"])
    57. failures += checkCase(270, "🇦̈ਃ", ["🇦̈ਃ"])
    58. failures += checkCase(271, "🇦ᄀ", ["🇦", "ᄀ"])
    59. failures += checkCase(272, "🇦̈ᄀ", ["🇦̈", "ᄀ"])
    60. failures += checkCase(273, "🇦ᅠ", ["🇦", "ᅠ"])
    61. failures += checkCase(274, "🇦̈ᅠ", ["🇦̈", "ᅠ"])
    62. failures += checkCase(275, "🇦ᆨ", ["🇦", "ᆨ"])
    63. failures += checkCase(276, "🇦̈ᆨ", ["🇦̈", "ᆨ"])
    64. failures += checkCase(277, "🇦가", ["🇦", "가"])
    65. failures += checkCase(278, "🇦̈가", ["🇦̈", "가"])
    66. failures += checkCase(279, "🇦각", ["🇦", "각"])
    67. failures += checkCase(280, "🇦̈각", ["🇦̈", "각"])
    68. failures
    69. }
    graphemecases4.tpzCheck every published Unicode 16 grapheme test rowОткрыть песочницу →
    1. import graphemesupport { checkCase }
    2. export function run() -> int {
    3. let mut failures = 0
    4. failures += checkCase(281, "🇦ः", ["🇦ः"])
    5. failures += checkCase(282, "🇦̈ः", ["🇦̈ः"])
    6. failures += checkCase(283, "🇦ऄ", ["🇦", "ऄ"])
    7. failures += checkCase(284, "🇦̈ऄ", ["🇦̈", "ऄ"])
    8. failures += checkCase(285, "🇦ൎ", ["🇦", "ൎ"])
    9. failures += checkCase(286, "🇦̈ൎ", ["🇦̈", "ൎ"])
    10. failures += checkCase(287, "🇦क", ["🇦", "क"])
    11. failures += checkCase(288, "🇦̈क", ["🇦̈", "क"])
    12. failures += checkCase(289, "🇦⌚", ["🇦", "⌚"])
    13. failures += checkCase(290, "🇦̈⌚", ["🇦̈", "⌚"])
    14. failures += checkCase(291, "🇦̀", ["🇦̀"])
    15. failures += checkCase(292, "🇦̈̀", ["🇦̈̀"])
    16. failures += checkCase(293, "🇦ऀ", ["🇦ऀ"])
    17. failures += checkCase(294, "🇦̈ऀ", ["🇦̈ऀ"])
    18. failures += checkCase(295, "🇦्", ["🇦्"])
    19. failures += checkCase(296, "🇦्̈", ["🇦्̈"])
    20. failures += checkCase(297, "🇦‍", ["🇦‍"])
    21. failures += checkCase(298, "🇦̈‍", ["🇦̈‍"])
    22. failures += checkCase(299, "🇦͸", ["🇦", "͸"])
    23. failures += checkCase(300, "🇦̈͸", ["🇦̈", "͸"])
    24. failures += checkCase(301, "؀ ", ["؀ "])
    25. failures += checkCase(302, "؀̈ ", ["؀̈", " "])
    26. failures += checkCase(303, "؀\r", ["؀", "\r"])
    27. failures += checkCase(304, "؀̈\r", ["؀̈", "\r"])
    28. failures += checkCase(305, "؀\n", ["؀", "\n"])
    29. failures += checkCase(306, "؀̈\n", ["؀̈", "\n"])
    30. failures += checkCase(307, "؀", ["؀", ""])
    31. failures += checkCase(308, "؀̈", ["؀̈", ""])
    32. failures += checkCase(309, "؀‌", ["؀‌"])
    33. failures += checkCase(310, "؀̈‌", ["؀̈‌"])
    34. failures += checkCase(311, "؀🇦", ["؀🇦"])
    35. failures += checkCase(312, "؀̈🇦", ["؀̈", "🇦"])
    36. failures += checkCase(313, "؀؀", ["؀؀"])
    37. failures += checkCase(314, "؀̈؀", ["؀̈", "؀"])
    38. failures += checkCase(315, "؀ਃ", ["؀ਃ"])
    39. failures += checkCase(316, "؀̈ਃ", ["؀̈ਃ"])
    40. failures += checkCase(317, "؀ᄀ", ["؀ᄀ"])
    41. failures += checkCase(318, "؀̈ᄀ", ["؀̈", "ᄀ"])
    42. failures += checkCase(319, "؀ᅠ", ["؀ᅠ"])
    43. failures += checkCase(320, "؀̈ᅠ", ["؀̈", "ᅠ"])
    44. failures += checkCase(321, "؀ᆨ", ["؀ᆨ"])
    45. failures += checkCase(322, "؀̈ᆨ", ["؀̈", "ᆨ"])
    46. failures += checkCase(323, "؀가", ["؀가"])
    47. failures += checkCase(324, "؀̈가", ["؀̈", "가"])
    48. failures += checkCase(325, "؀각", ["؀각"])
    49. failures += checkCase(326, "؀̈각", ["؀̈", "각"])
    50. failures += checkCase(327, "؀ः", ["؀ः"])
    51. failures += checkCase(328, "؀̈ः", ["؀̈ः"])
    52. failures += checkCase(329, "؀ऄ", ["؀ऄ"])
    53. failures += checkCase(330, "؀̈ऄ", ["؀̈", "ऄ"])
    54. failures += checkCase(331, "؀ൎ", ["؀ൎ"])
    55. failures += checkCase(332, "؀̈ൎ", ["؀̈", "ൎ"])
    56. failures += checkCase(333, "؀क", ["؀क"])
    57. failures += checkCase(334, "؀̈क", ["؀̈", "क"])
    58. failures += checkCase(335, "؀⌚", ["؀⌚"])
    59. failures += checkCase(336, "؀̈⌚", ["؀̈", "⌚"])
    60. failures += checkCase(337, "؀̀", ["؀̀"])
    61. failures += checkCase(338, "؀̈̀", ["؀̈̀"])
    62. failures += checkCase(339, "؀ऀ", ["؀ऀ"])
    63. failures += checkCase(340, "؀̈ऀ", ["؀̈ऀ"])
    64. failures += checkCase(341, "؀्", ["؀्"])
    65. failures += checkCase(342, "؀्̈", ["؀्̈"])
    66. failures += checkCase(343, "؀‍", ["؀‍"])
    67. failures += checkCase(344, "؀̈‍", ["؀̈‍"])
    68. failures
    69. }
    graphemecases5.tpzCheck every published Unicode 16 grapheme test rowОткрыть песочницу →
    1. import graphemesupport { checkCase }
    2. export function run() -> int {
    3. let mut failures = 0
    4. failures += checkCase(345, "؀͸", ["؀͸"])
    5. failures += checkCase(346, "؀̈͸", ["؀̈", "͸"])
    6. failures += checkCase(347, "ਃ ", ["ਃ", " "])
    7. failures += checkCase(348, "ਃ̈ ", ["ਃ̈", " "])
    8. failures += checkCase(349, "ਃ\r", ["ਃ", "\r"])
    9. failures += checkCase(350, "ਃ̈\r", ["ਃ̈", "\r"])
    10. failures += checkCase(351, "ਃ\n", ["ਃ", "\n"])
    11. failures += checkCase(352, "ਃ̈\n", ["ਃ̈", "\n"])
    12. failures += checkCase(353, "ਃ", ["ਃ", ""])
    13. failures += checkCase(354, "ਃ̈", ["ਃ̈", ""])
    14. failures += checkCase(355, "ਃ‌", ["ਃ‌"])
    15. failures += checkCase(356, "ਃ̈‌", ["ਃ̈‌"])
    16. failures += checkCase(357, "ਃ🇦", ["ਃ", "🇦"])
    17. failures += checkCase(358, "ਃ̈🇦", ["ਃ̈", "🇦"])
    18. failures += checkCase(359, "ਃ؀", ["ਃ", "؀"])
    19. failures += checkCase(360, "ਃ̈؀", ["ਃ̈", "؀"])
    20. failures += checkCase(361, "ਃਃ", ["ਃਃ"])
    21. failures += checkCase(362, "ਃ̈ਃ", ["ਃ̈ਃ"])
    22. failures += checkCase(363, "ਃᄀ", ["ਃ", "ᄀ"])
    23. failures += checkCase(364, "ਃ̈ᄀ", ["ਃ̈", "ᄀ"])
    24. failures += checkCase(365, "ਃᅠ", ["ਃ", "ᅠ"])
    25. failures += checkCase(366, "ਃ̈ᅠ", ["ਃ̈", "ᅠ"])
    26. failures += checkCase(367, "ਃᆨ", ["ਃ", "ᆨ"])
    27. failures += checkCase(368, "ਃ̈ᆨ", ["ਃ̈", "ᆨ"])
    28. failures += checkCase(369, "ਃ가", ["ਃ", "가"])
    29. failures += checkCase(370, "ਃ̈가", ["ਃ̈", "가"])
    30. failures += checkCase(371, "ਃ각", ["ਃ", "각"])
    31. failures += checkCase(372, "ਃ̈각", ["ਃ̈", "각"])
    32. failures += checkCase(373, "ਃः", ["ਃः"])
    33. failures += checkCase(374, "ਃ̈ः", ["ਃ̈ः"])
    34. failures += checkCase(375, "ਃऄ", ["ਃ", "ऄ"])
    35. failures += checkCase(376, "ਃ̈ऄ", ["ਃ̈", "ऄ"])
    36. failures += checkCase(377, "ਃൎ", ["ਃ", "ൎ"])
    37. failures += checkCase(378, "ਃ̈ൎ", ["ਃ̈", "ൎ"])
    38. failures += checkCase(379, "ਃक", ["ਃ", "क"])
    39. failures += checkCase(380, "ਃ̈क", ["ਃ̈", "क"])
    40. failures += checkCase(381, "ਃ⌚", ["ਃ", "⌚"])
    41. failures += checkCase(382, "ਃ̈⌚", ["ਃ̈", "⌚"])
    42. failures += checkCase(383, "ਃ̀", ["ਃ̀"])
    43. failures += checkCase(384, "ਃ̈̀", ["ਃ̈̀"])
    44. failures += checkCase(385, "ਃऀ", ["ਃऀ"])
    45. failures += checkCase(386, "ਃ̈ऀ", ["ਃ̈ऀ"])
    46. failures += checkCase(387, "ਃ्", ["ਃ्"])
    47. failures += checkCase(388, "ਃ्̈", ["ਃ्̈"])
    48. failures += checkCase(389, "ਃ‍", ["ਃ‍"])
    49. failures += checkCase(390, "ਃ̈‍", ["ਃ̈‍"])
    50. failures += checkCase(391, "ਃ͸", ["ਃ", "͸"])
    51. failures += checkCase(392, "ਃ̈͸", ["ਃ̈", "͸"])
    52. failures += checkCase(393, "ᄀ ", ["ᄀ", " "])
    53. failures += checkCase(394, "ᄀ̈ ", ["ᄀ̈", " "])
    54. failures += checkCase(395, "ᄀ\r", ["ᄀ", "\r"])
    55. failures += checkCase(396, "ᄀ̈\r", ["ᄀ̈", "\r"])
    56. failures += checkCase(397, "ᄀ\n", ["ᄀ", "\n"])
    57. failures += checkCase(398, "ᄀ̈\n", ["ᄀ̈", "\n"])
    58. failures += checkCase(399, "ᄀ", ["ᄀ", ""])
    59. failures += checkCase(400, "ᄀ̈", ["ᄀ̈", ""])
    60. failures += checkCase(401, "ᄀ‌", ["ᄀ‌"])
    61. failures += checkCase(402, "ᄀ̈‌", ["ᄀ̈‌"])
    62. failures += checkCase(403, "ᄀ🇦", ["ᄀ", "🇦"])
    63. failures += checkCase(404, "ᄀ̈🇦", ["ᄀ̈", "🇦"])
    64. failures += checkCase(405, "ᄀ؀", ["ᄀ", "؀"])
    65. failures += checkCase(406, "ᄀ̈؀", ["ᄀ̈", "؀"])
    66. failures += checkCase(407, "ᄀਃ", ["ᄀਃ"])
    67. failures += checkCase(408, "ᄀ̈ਃ", ["ᄀ̈ਃ"])
    68. failures
    69. }
    graphemecases6.tpzCheck every published Unicode 16 grapheme test rowОткрыть песочницу →
    1. import graphemesupport { checkCase }
    2. export function run() -> int {
    3. let mut failures = 0
    4. failures += checkCase(409, "ᄀᄀ", ["ᄀᄀ"])
    5. failures += checkCase(410, "ᄀ̈ᄀ", ["ᄀ̈", "ᄀ"])
    6. failures += checkCase(411, "ᄀᅠ", ["ᄀᅠ"])
    7. failures += checkCase(412, "ᄀ̈ᅠ", ["ᄀ̈", "ᅠ"])
    8. failures += checkCase(413, "ᄀᆨ", ["ᄀ", "ᆨ"])
    9. failures += checkCase(414, "ᄀ̈ᆨ", ["ᄀ̈", "ᆨ"])
    10. failures += checkCase(415, "ᄀ가", ["ᄀ가"])
    11. failures += checkCase(416, "ᄀ̈가", ["ᄀ̈", "가"])
    12. failures += checkCase(417, "ᄀ각", ["ᄀ각"])
    13. failures += checkCase(418, "ᄀ̈각", ["ᄀ̈", "각"])
    14. failures += checkCase(419, "ᄀः", ["ᄀः"])
    15. failures += checkCase(420, "ᄀ̈ः", ["ᄀ̈ः"])
    16. failures += checkCase(421, "ᄀऄ", ["ᄀ", "ऄ"])
    17. failures += checkCase(422, "ᄀ̈ऄ", ["ᄀ̈", "ऄ"])
    18. failures += checkCase(423, "ᄀൎ", ["ᄀ", "ൎ"])
    19. failures += checkCase(424, "ᄀ̈ൎ", ["ᄀ̈", "ൎ"])
    20. failures += checkCase(425, "ᄀक", ["ᄀ", "क"])
    21. failures += checkCase(426, "ᄀ̈क", ["ᄀ̈", "क"])
    22. failures += checkCase(427, "ᄀ⌚", ["ᄀ", "⌚"])
    23. failures += checkCase(428, "ᄀ̈⌚", ["ᄀ̈", "⌚"])
    24. failures += checkCase(429, "ᄀ̀", ["ᄀ̀"])
    25. failures += checkCase(430, "ᄀ̈̀", ["ᄀ̈̀"])
    26. failures += checkCase(431, "ᄀऀ", ["ᄀऀ"])
    27. failures += checkCase(432, "ᄀ̈ऀ", ["ᄀ̈ऀ"])
    28. failures += checkCase(433, "ᄀ्", ["ᄀ्"])
    29. failures += checkCase(434, "ᄀ्̈", ["ᄀ्̈"])
    30. failures += checkCase(435, "ᄀ‍", ["ᄀ‍"])
    31. failures += checkCase(436, "ᄀ̈‍", ["ᄀ̈‍"])
    32. failures += checkCase(437, "ᄀ͸", ["ᄀ", "͸"])
    33. failures += checkCase(438, "ᄀ̈͸", ["ᄀ̈", "͸"])
    34. failures += checkCase(439, "ᅠ ", ["ᅠ", " "])
    35. failures += checkCase(440, "ᅠ̈ ", ["ᅠ̈", " "])
    36. failures += checkCase(441, "ᅠ\r", ["ᅠ", "\r"])
    37. failures += checkCase(442, "ᅠ̈\r", ["ᅠ̈", "\r"])
    38. failures += checkCase(443, "ᅠ\n", ["ᅠ", "\n"])
    39. failures += checkCase(444, "ᅠ̈\n", ["ᅠ̈", "\n"])
    40. failures += checkCase(445, "ᅠ", ["ᅠ", ""])
    41. failures += checkCase(446, "ᅠ̈", ["ᅠ̈", ""])
    42. failures += checkCase(447, "ᅠ‌", ["ᅠ‌"])
    43. failures += checkCase(448, "ᅠ̈‌", ["ᅠ̈‌"])
    44. failures += checkCase(449, "ᅠ🇦", ["ᅠ", "🇦"])
    45. failures += checkCase(450, "ᅠ̈🇦", ["ᅠ̈", "🇦"])
    46. failures += checkCase(451, "ᅠ؀", ["ᅠ", "؀"])
    47. failures += checkCase(452, "ᅠ̈؀", ["ᅠ̈", "؀"])
    48. failures += checkCase(453, "ᅠਃ", ["ᅠਃ"])
    49. failures += checkCase(454, "ᅠ̈ਃ", ["ᅠ̈ਃ"])
    50. failures += checkCase(455, "ᅠᄀ", ["ᅠ", "ᄀ"])
    51. failures += checkCase(456, "ᅠ̈ᄀ", ["ᅠ̈", "ᄀ"])
    52. failures += checkCase(457, "ᅠᅠ", ["ᅠᅠ"])
    53. failures += checkCase(458, "ᅠ̈ᅠ", ["ᅠ̈", "ᅠ"])
    54. failures += checkCase(459, "ᅠᆨ", ["ᅠᆨ"])
    55. failures += checkCase(460, "ᅠ̈ᆨ", ["ᅠ̈", "ᆨ"])
    56. failures += checkCase(461, "ᅠ가", ["ᅠ", "가"])
    57. failures += checkCase(462, "ᅠ̈가", ["ᅠ̈", "가"])
    58. failures += checkCase(463, "ᅠ각", ["ᅠ", "각"])
    59. failures += checkCase(464, "ᅠ̈각", ["ᅠ̈", "각"])
    60. failures += checkCase(465, "ᅠः", ["ᅠः"])
    61. failures += checkCase(466, "ᅠ̈ः", ["ᅠ̈ः"])
    62. failures += checkCase(467, "ᅠऄ", ["ᅠ", "ऄ"])
    63. failures += checkCase(468, "ᅠ̈ऄ", ["ᅠ̈", "ऄ"])
    64. failures += checkCase(469, "ᅠൎ", ["ᅠ", "ൎ"])
    65. failures += checkCase(470, "ᅠ̈ൎ", ["ᅠ̈", "ൎ"])
    66. failures += checkCase(471, "ᅠक", ["ᅠ", "क"])
    67. failures += checkCase(472, "ᅠ̈क", ["ᅠ̈", "क"])
    68. failures
    69. }
    graphemecases7.tpzCheck every published Unicode 16 grapheme test rowОткрыть песочницу →
    1. import graphemesupport { checkCase }
    2. export function run() -> int {
    3. let mut failures = 0
    4. failures += checkCase(473, "ᅠ⌚", ["ᅠ", "⌚"])
    5. failures += checkCase(474, "ᅠ̈⌚", ["ᅠ̈", "⌚"])
    6. failures += checkCase(475, "ᅠ̀", ["ᅠ̀"])
    7. failures += checkCase(476, "ᅠ̈̀", ["ᅠ̈̀"])
    8. failures += checkCase(477, "ᅠऀ", ["ᅠऀ"])
    9. failures += checkCase(478, "ᅠ̈ऀ", ["ᅠ̈ऀ"])
    10. failures += checkCase(479, "ᅠ्", ["ᅠ्"])
    11. failures += checkCase(480, "ᅠ्̈", ["ᅠ्̈"])
    12. failures += checkCase(481, "ᅠ‍", ["ᅠ‍"])
    13. failures += checkCase(482, "ᅠ̈‍", ["ᅠ̈‍"])
    14. failures += checkCase(483, "ᅠ͸", ["ᅠ", "͸"])
    15. failures += checkCase(484, "ᅠ̈͸", ["ᅠ̈", "͸"])
    16. failures += checkCase(485, "ᆨ ", ["ᆨ", " "])
    17. failures += checkCase(486, "ᆨ̈ ", ["ᆨ̈", " "])
    18. failures += checkCase(487, "ᆨ\r", ["ᆨ", "\r"])
    19. failures += checkCase(488, "ᆨ̈\r", ["ᆨ̈", "\r"])
    20. failures += checkCase(489, "ᆨ\n", ["ᆨ", "\n"])
    21. failures += checkCase(490, "ᆨ̈\n", ["ᆨ̈", "\n"])
    22. failures += checkCase(491, "ᆨ", ["ᆨ", ""])
    23. failures += checkCase(492, "ᆨ̈", ["ᆨ̈", ""])
    24. failures += checkCase(493, "ᆨ‌", ["ᆨ‌"])
    25. failures += checkCase(494, "ᆨ̈‌", ["ᆨ̈‌"])
    26. failures += checkCase(495, "ᆨ🇦", ["ᆨ", "🇦"])
    27. failures += checkCase(496, "ᆨ̈🇦", ["ᆨ̈", "🇦"])
    28. failures += checkCase(497, "ᆨ؀", ["ᆨ", "؀"])
    29. failures += checkCase(498, "ᆨ̈؀", ["ᆨ̈", "؀"])
    30. failures += checkCase(499, "ᆨਃ", ["ᆨਃ"])
    31. failures += checkCase(500, "ᆨ̈ਃ", ["ᆨ̈ਃ"])
    32. failures += checkCase(501, "ᆨᄀ", ["ᆨ", "ᄀ"])
    33. failures += checkCase(502, "ᆨ̈ᄀ", ["ᆨ̈", "ᄀ"])
    34. failures += checkCase(503, "ᆨᅠ", ["ᆨ", "ᅠ"])
    35. failures += checkCase(504, "ᆨ̈ᅠ", ["ᆨ̈", "ᅠ"])
    36. failures += checkCase(505, "ᆨᆨ", ["ᆨᆨ"])
    37. failures += checkCase(506, "ᆨ̈ᆨ", ["ᆨ̈", "ᆨ"])
    38. failures += checkCase(507, "ᆨ가", ["ᆨ", "가"])
    39. failures += checkCase(508, "ᆨ̈가", ["ᆨ̈", "가"])
    40. failures += checkCase(509, "ᆨ각", ["ᆨ", "각"])
    41. failures += checkCase(510, "ᆨ̈각", ["ᆨ̈", "각"])
    42. failures += checkCase(511, "ᆨः", ["ᆨः"])
    43. failures += checkCase(512, "ᆨ̈ः", ["ᆨ̈ः"])
    44. failures += checkCase(513, "ᆨऄ", ["ᆨ", "ऄ"])
    45. failures += checkCase(514, "ᆨ̈ऄ", ["ᆨ̈", "ऄ"])
    46. failures += checkCase(515, "ᆨൎ", ["ᆨ", "ൎ"])
    47. failures += checkCase(516, "ᆨ̈ൎ", ["ᆨ̈", "ൎ"])
    48. failures += checkCase(517, "ᆨक", ["ᆨ", "क"])
    49. failures += checkCase(518, "ᆨ̈क", ["ᆨ̈", "क"])
    50. failures += checkCase(519, "ᆨ⌚", ["ᆨ", "⌚"])
    51. failures += checkCase(520, "ᆨ̈⌚", ["ᆨ̈", "⌚"])
    52. failures += checkCase(521, "ᆨ̀", ["ᆨ̀"])
    53. failures += checkCase(522, "ᆨ̈̀", ["ᆨ̈̀"])
    54. failures += checkCase(523, "ᆨऀ", ["ᆨऀ"])
    55. failures += checkCase(524, "ᆨ̈ऀ", ["ᆨ̈ऀ"])
    56. failures += checkCase(525, "ᆨ्", ["ᆨ्"])
    57. failures += checkCase(526, "ᆨ्̈", ["ᆨ्̈"])
    58. failures += checkCase(527, "ᆨ‍", ["ᆨ‍"])
    59. failures += checkCase(528, "ᆨ̈‍", ["ᆨ̈‍"])
    60. failures += checkCase(529, "ᆨ͸", ["ᆨ", "͸"])
    61. failures += checkCase(530, "ᆨ̈͸", ["ᆨ̈", "͸"])
    62. failures += checkCase(531, "가 ", ["가", " "])
    63. failures += checkCase(532, "가̈ ", ["가̈", " "])
    64. failures += checkCase(533, "가\r", ["가", "\r"])
    65. failures += checkCase(534, "가̈\r", ["가̈", "\r"])
    66. failures += checkCase(535, "가\n", ["가", "\n"])
    67. failures += checkCase(536, "가̈\n", ["가̈", "\n"])
    68. failures
    69. }
    graphemecases8.tpzCheck every published Unicode 16 grapheme test rowОткрыть песочницу →
    1. import graphemesupport { checkCase }
    2. export function run() -> int {
    3. let mut failures = 0
    4. failures += checkCase(537, "가", ["가", ""])
    5. failures += checkCase(538, "가̈", ["가̈", ""])
    6. failures += checkCase(539, "가‌", ["가‌"])
    7. failures += checkCase(540, "가̈‌", ["가̈‌"])
    8. failures += checkCase(541, "가🇦", ["가", "🇦"])
    9. failures += checkCase(542, "가̈🇦", ["가̈", "🇦"])
    10. failures += checkCase(543, "가؀", ["가", "؀"])
    11. failures += checkCase(544, "가̈؀", ["가̈", "؀"])
    12. failures += checkCase(545, "가ਃ", ["가ਃ"])
    13. failures += checkCase(546, "가̈ਃ", ["가̈ਃ"])
    14. failures += checkCase(547, "가ᄀ", ["가", "ᄀ"])
    15. failures += checkCase(548, "가̈ᄀ", ["가̈", "ᄀ"])
    16. failures += checkCase(549, "가ᅠ", ["가ᅠ"])
    17. failures += checkCase(550, "가̈ᅠ", ["가̈", "ᅠ"])
    18. failures += checkCase(551, "각", ["각"])
    19. failures += checkCase(552, "가̈ᆨ", ["가̈", "ᆨ"])
    20. failures += checkCase(553, "가가", ["가", "가"])
    21. failures += checkCase(554, "가̈가", ["가̈", "가"])
    22. failures += checkCase(555, "가각", ["가", "각"])
    23. failures += checkCase(556, "가̈각", ["가̈", "각"])
    24. failures += checkCase(557, "가ः", ["가ः"])
    25. failures += checkCase(558, "가̈ः", ["가̈ः"])
    26. failures += checkCase(559, "가ऄ", ["가", "ऄ"])
    27. failures += checkCase(560, "가̈ऄ", ["가̈", "ऄ"])
    28. failures += checkCase(561, "가ൎ", ["가", "ൎ"])
    29. failures += checkCase(562, "가̈ൎ", ["가̈", "ൎ"])
    30. failures += checkCase(563, "가क", ["가", "क"])
    31. failures += checkCase(564, "가̈क", ["가̈", "क"])
    32. failures += checkCase(565, "가⌚", ["가", "⌚"])
    33. failures += checkCase(566, "가̈⌚", ["가̈", "⌚"])
    34. failures += checkCase(567, "가̀", ["가̀"])
    35. failures += checkCase(568, "가̈̀", ["가̈̀"])
    36. failures += checkCase(569, "가ऀ", ["가ऀ"])
    37. failures += checkCase(570, "가̈ऀ", ["가̈ऀ"])
    38. failures += checkCase(571, "가्", ["가्"])
    39. failures += checkCase(572, "가्̈", ["가्̈"])
    40. failures += checkCase(573, "가‍", ["가‍"])
    41. failures += checkCase(574, "가̈‍", ["가̈‍"])
    42. failures += checkCase(575, "가͸", ["가", "͸"])
    43. failures += checkCase(576, "가̈͸", ["가̈", "͸"])
    44. failures += checkCase(577, "각 ", ["각", " "])
    45. failures += checkCase(578, "각̈ ", ["각̈", " "])
    46. failures += checkCase(579, "각\r", ["각", "\r"])
    47. failures += checkCase(580, "각̈\r", ["각̈", "\r"])
    48. failures += checkCase(581, "각\n", ["각", "\n"])
    49. failures += checkCase(582, "각̈\n", ["각̈", "\n"])
    50. failures += checkCase(583, "각", ["각", ""])
    51. failures += checkCase(584, "각̈", ["각̈", ""])
    52. failures += checkCase(585, "각‌", ["각‌"])
    53. failures += checkCase(586, "각̈‌", ["각̈‌"])
    54. failures += checkCase(587, "각🇦", ["각", "🇦"])
    55. failures += checkCase(588, "각̈🇦", ["각̈", "🇦"])
    56. failures += checkCase(589, "각؀", ["각", "؀"])
    57. failures += checkCase(590, "각̈؀", ["각̈", "؀"])
    58. failures += checkCase(591, "각ਃ", ["각ਃ"])
    59. failures += checkCase(592, "각̈ਃ", ["각̈ਃ"])
    60. failures += checkCase(593, "각ᄀ", ["각", "ᄀ"])
    61. failures += checkCase(594, "각̈ᄀ", ["각̈", "ᄀ"])
    62. failures += checkCase(595, "각ᅠ", ["각", "ᅠ"])
    63. failures += checkCase(596, "각̈ᅠ", ["각̈", "ᅠ"])
    64. failures += checkCase(597, "각ᆨ", ["각ᆨ"])
    65. failures += checkCase(598, "각̈ᆨ", ["각̈", "ᆨ"])
    66. failures += checkCase(599, "각가", ["각", "가"])
    67. failures += checkCase(600, "각̈가", ["각̈", "가"])
    68. failures
    69. }
    graphemecases9.tpzCheck every published Unicode 16 grapheme test rowОткрыть песочницу →
    1. import graphemesupport { checkCase }
    2. export function run() -> int {
    3. let mut failures = 0
    4. failures += checkCase(601, "각각", ["각", "각"])
    5. failures += checkCase(602, "각̈각", ["각̈", "각"])
    6. failures += checkCase(603, "각ः", ["각ः"])
    7. failures += checkCase(604, "각̈ः", ["각̈ः"])
    8. failures += checkCase(605, "각ऄ", ["각", "ऄ"])
    9. failures += checkCase(606, "각̈ऄ", ["각̈", "ऄ"])
    10. failures += checkCase(607, "각ൎ", ["각", "ൎ"])
    11. failures += checkCase(608, "각̈ൎ", ["각̈", "ൎ"])
    12. failures += checkCase(609, "각क", ["각", "क"])
    13. failures += checkCase(610, "각̈क", ["각̈", "क"])
    14. failures += checkCase(611, "각⌚", ["각", "⌚"])
    15. failures += checkCase(612, "각̈⌚", ["각̈", "⌚"])
    16. failures += checkCase(613, "각̀", ["각̀"])
    17. failures += checkCase(614, "각̈̀", ["각̈̀"])
    18. failures += checkCase(615, "각ऀ", ["각ऀ"])
    19. failures += checkCase(616, "각̈ऀ", ["각̈ऀ"])
    20. failures += checkCase(617, "각्", ["각्"])
    21. failures += checkCase(618, "각्̈", ["각्̈"])
    22. failures += checkCase(619, "각‍", ["각‍"])
    23. failures += checkCase(620, "각̈‍", ["각̈‍"])
    24. failures += checkCase(621, "각͸", ["각", "͸"])
    25. failures += checkCase(622, "각̈͸", ["각̈", "͸"])
    26. failures += checkCase(623, "ः ", ["ः", " "])
    27. failures += checkCase(624, "ः̈ ", ["ः̈", " "])
    28. failures += checkCase(625, "ः\r", ["ः", "\r"])
    29. failures += checkCase(626, "ः̈\r", ["ः̈", "\r"])
    30. failures += checkCase(627, "ः\n", ["ः", "\n"])
    31. failures += checkCase(628, "ः̈\n", ["ः̈", "\n"])
    32. failures += checkCase(629, "ः", ["ः", ""])
    33. failures += checkCase(630, "ः̈", ["ः̈", ""])
    34. failures += checkCase(631, "ः‌", ["ः‌"])
    35. failures += checkCase(632, "ः̈‌", ["ः̈‌"])
    36. failures += checkCase(633, "ः🇦", ["ः", "🇦"])
    37. failures += checkCase(634, "ः̈🇦", ["ः̈", "🇦"])
    38. failures += checkCase(635, "ः؀", ["ः", "؀"])
    39. failures += checkCase(636, "ः̈؀", ["ः̈", "؀"])
    40. failures += checkCase(637, "ःਃ", ["ःਃ"])
    41. failures += checkCase(638, "ः̈ਃ", ["ः̈ਃ"])
    42. failures += checkCase(639, "ःᄀ", ["ः", "ᄀ"])
    43. failures += checkCase(640, "ः̈ᄀ", ["ः̈", "ᄀ"])
    44. failures += checkCase(641, "ःᅠ", ["ः", "ᅠ"])
    45. failures += checkCase(642, "ः̈ᅠ", ["ः̈", "ᅠ"])
    46. failures += checkCase(643, "ःᆨ", ["ः", "ᆨ"])
    47. failures += checkCase(644, "ः̈ᆨ", ["ः̈", "ᆨ"])
    48. failures += checkCase(645, "ः가", ["ः", "가"])
    49. failures += checkCase(646, "ः̈가", ["ः̈", "가"])
    50. failures += checkCase(647, "ः각", ["ः", "각"])
    51. failures += checkCase(648, "ः̈각", ["ः̈", "각"])
    52. failures += checkCase(649, "ःः", ["ःः"])
    53. failures += checkCase(650, "ः̈ः", ["ः̈ः"])
    54. failures += checkCase(651, "ःऄ", ["ः", "ऄ"])
    55. failures += checkCase(652, "ः̈ऄ", ["ः̈", "ऄ"])
    56. failures += checkCase(653, "ःൎ", ["ः", "ൎ"])
    57. failures += checkCase(654, "ः̈ൎ", ["ः̈", "ൎ"])
    58. failures += checkCase(655, "ःक", ["ः", "क"])
    59. failures += checkCase(656, "ः̈क", ["ः̈", "क"])
    60. failures += checkCase(657, "ः⌚", ["ः", "⌚"])
    61. failures += checkCase(658, "ः̈⌚", ["ः̈", "⌚"])
    62. failures += checkCase(659, "ः̀", ["ः̀"])
    63. failures += checkCase(660, "ः̈̀", ["ः̈̀"])
    64. failures += checkCase(661, "ःऀ", ["ःऀ"])
    65. failures += checkCase(662, "ः̈ऀ", ["ः̈ऀ"])
    66. failures += checkCase(663, "ः्", ["ः्"])
    67. failures += checkCase(664, "ः्̈", ["ः्̈"])
    68. failures
    69. }
    graphemecases10.tpzCheck every published Unicode 16 grapheme test rowОткрыть песочницу →
    1. import graphemesupport { checkCase }
    2. export function run() -> int {
    3. let mut failures = 0
    4. failures += checkCase(665, "ः‍", ["ः‍"])
    5. failures += checkCase(666, "ः̈‍", ["ः̈‍"])
    6. failures += checkCase(667, "ः͸", ["ः", "͸"])
    7. failures += checkCase(668, "ः̈͸", ["ः̈", "͸"])
    8. failures += checkCase(669, "ऄ ", ["ऄ", " "])
    9. failures += checkCase(670, "ऄ̈ ", ["ऄ̈", " "])
    10. failures += checkCase(671, "ऄ\r", ["ऄ", "\r"])
    11. failures += checkCase(672, "ऄ̈\r", ["ऄ̈", "\r"])
    12. failures += checkCase(673, "ऄ\n", ["ऄ", "\n"])
    13. failures += checkCase(674, "ऄ̈\n", ["ऄ̈", "\n"])
    14. failures += checkCase(675, "ऄ", ["ऄ", ""])
    15. failures += checkCase(676, "ऄ̈", ["ऄ̈", ""])
    16. failures += checkCase(677, "ऄ‌", ["ऄ‌"])
    17. failures += checkCase(678, "ऄ̈‌", ["ऄ̈‌"])
    18. failures += checkCase(679, "ऄ🇦", ["ऄ", "🇦"])
    19. failures += checkCase(680, "ऄ̈🇦", ["ऄ̈", "🇦"])
    20. failures += checkCase(681, "ऄ؀", ["ऄ", "؀"])
    21. failures += checkCase(682, "ऄ̈؀", ["ऄ̈", "؀"])
    22. failures += checkCase(683, "ऄਃ", ["ऄਃ"])
    23. failures += checkCase(684, "ऄ̈ਃ", ["ऄ̈ਃ"])
    24. failures += checkCase(685, "ऄᄀ", ["ऄ", "ᄀ"])
    25. failures += checkCase(686, "ऄ̈ᄀ", ["ऄ̈", "ᄀ"])
    26. failures += checkCase(687, "ऄᅠ", ["ऄ", "ᅠ"])
    27. failures += checkCase(688, "ऄ̈ᅠ", ["ऄ̈", "ᅠ"])
    28. failures += checkCase(689, "ऄᆨ", ["ऄ", "ᆨ"])
    29. failures += checkCase(690, "ऄ̈ᆨ", ["ऄ̈", "ᆨ"])
    30. failures += checkCase(691, "ऄ가", ["ऄ", "가"])
    31. failures += checkCase(692, "ऄ̈가", ["ऄ̈", "가"])
    32. failures += checkCase(693, "ऄ각", ["ऄ", "각"])
    33. failures += checkCase(694, "ऄ̈각", ["ऄ̈", "각"])
    34. failures += checkCase(695, "ऄः", ["ऄः"])
    35. failures += checkCase(696, "ऄ̈ः", ["ऄ̈ः"])
    36. failures += checkCase(697, "ऄऄ", ["ऄ", "ऄ"])
    37. failures += checkCase(698, "ऄ̈ऄ", ["ऄ̈", "ऄ"])
    38. failures += checkCase(699, "ऄൎ", ["ऄ", "ൎ"])
    39. failures += checkCase(700, "ऄ̈ൎ", ["ऄ̈", "ൎ"])
    40. failures += checkCase(701, "ऄक", ["ऄ", "क"])
    41. failures += checkCase(702, "ऄ̈क", ["ऄ̈", "क"])
    42. failures += checkCase(703, "ऄ⌚", ["ऄ", "⌚"])
    43. failures += checkCase(704, "ऄ̈⌚", ["ऄ̈", "⌚"])
    44. failures += checkCase(705, "ऄ̀", ["ऄ̀"])
    45. failures += checkCase(706, "ऄ̈̀", ["ऄ̈̀"])
    46. failures += checkCase(707, "ऄऀ", ["ऄऀ"])
    47. failures += checkCase(708, "ऄ̈ऀ", ["ऄ̈ऀ"])
    48. failures += checkCase(709, "ऄ्", ["ऄ्"])
    49. failures += checkCase(710, "ऄ्̈", ["ऄ्̈"])
    50. failures += checkCase(711, "ऄ‍", ["ऄ‍"])
    51. failures += checkCase(712, "ऄ̈‍", ["ऄ̈‍"])
    52. failures += checkCase(713, "ऄ͸", ["ऄ", "͸"])
    53. failures += checkCase(714, "ऄ̈͸", ["ऄ̈", "͸"])
    54. failures += checkCase(715, "ൎ ", ["ൎ "])
    55. failures += checkCase(716, "ൎ̈ ", ["ൎ̈", " "])
    56. failures += checkCase(717, "ൎ\r", ["ൎ", "\r"])
    57. failures += checkCase(718, "ൎ̈\r", ["ൎ̈", "\r"])
    58. failures += checkCase(719, "ൎ\n", ["ൎ", "\n"])
    59. failures += checkCase(720, "ൎ̈\n", ["ൎ̈", "\n"])
    60. failures += checkCase(721, "ൎ", ["ൎ", ""])
    61. failures += checkCase(722, "ൎ̈", ["ൎ̈", ""])
    62. failures += checkCase(723, "ൎ‌", ["ൎ‌"])
    63. failures += checkCase(724, "ൎ̈‌", ["ൎ̈‌"])
    64. failures += checkCase(725, "ൎ🇦", ["ൎ🇦"])
    65. failures += checkCase(726, "ൎ̈🇦", ["ൎ̈", "🇦"])
    66. failures += checkCase(727, "ൎ؀", ["ൎ؀"])
    67. failures += checkCase(728, "ൎ̈؀", ["ൎ̈", "؀"])
    68. failures
    69. }
    graphemecases11.tpzCheck every published Unicode 16 grapheme test rowОткрыть песочницу →
    1. import graphemesupport { checkCase }
    2. export function run() -> int {
    3. let mut failures = 0
    4. failures += checkCase(729, "ൎਃ", ["ൎਃ"])
    5. failures += checkCase(730, "ൎ̈ਃ", ["ൎ̈ਃ"])
    6. failures += checkCase(731, "ൎᄀ", ["ൎᄀ"])
    7. failures += checkCase(732, "ൎ̈ᄀ", ["ൎ̈", "ᄀ"])
    8. failures += checkCase(733, "ൎᅠ", ["ൎᅠ"])
    9. failures += checkCase(734, "ൎ̈ᅠ", ["ൎ̈", "ᅠ"])
    10. failures += checkCase(735, "ൎᆨ", ["ൎᆨ"])
    11. failures += checkCase(736, "ൎ̈ᆨ", ["ൎ̈", "ᆨ"])
    12. failures += checkCase(737, "ൎ가", ["ൎ가"])
    13. failures += checkCase(738, "ൎ̈가", ["ൎ̈", "가"])
    14. failures += checkCase(739, "ൎ각", ["ൎ각"])
    15. failures += checkCase(740, "ൎ̈각", ["ൎ̈", "각"])
    16. failures += checkCase(741, "ൎः", ["ൎः"])
    17. failures += checkCase(742, "ൎ̈ः", ["ൎ̈ः"])
    18. failures += checkCase(743, "ൎऄ", ["ൎऄ"])
    19. failures += checkCase(744, "ൎ̈ऄ", ["ൎ̈", "ऄ"])
    20. failures += checkCase(745, "ൎൎ", ["ൎൎ"])
    21. failures += checkCase(746, "ൎ̈ൎ", ["ൎ̈", "ൎ"])
    22. failures += checkCase(747, "ൎक", ["ൎक"])
    23. failures += checkCase(748, "ൎ̈क", ["ൎ̈", "क"])
    24. failures += checkCase(749, "ൎ⌚", ["ൎ⌚"])
    25. failures += checkCase(750, "ൎ̈⌚", ["ൎ̈", "⌚"])
    26. failures += checkCase(751, "ൎ̀", ["ൎ̀"])
    27. failures += checkCase(752, "ൎ̈̀", ["ൎ̈̀"])
    28. failures += checkCase(753, "ൎऀ", ["ൎऀ"])
    29. failures += checkCase(754, "ൎ̈ऀ", ["ൎ̈ऀ"])
    30. failures += checkCase(755, "ൎ्", ["ൎ्"])
    31. failures += checkCase(756, "ൎ्̈", ["ൎ्̈"])
    32. failures += checkCase(757, "ൎ‍", ["ൎ‍"])
    33. failures += checkCase(758, "ൎ̈‍", ["ൎ̈‍"])
    34. failures += checkCase(759, "ൎ͸", ["ൎ͸"])
    35. failures += checkCase(760, "ൎ̈͸", ["ൎ̈", "͸"])
    36. failures += checkCase(761, "क ", ["क", " "])
    37. failures += checkCase(762, "क̈ ", ["क̈", " "])
    38. failures += checkCase(763, "क\r", ["क", "\r"])
    39. failures += checkCase(764, "क̈\r", ["क̈", "\r"])
    40. failures += checkCase(765, "क\n", ["क", "\n"])
    41. failures += checkCase(766, "क̈\n", ["क̈", "\n"])
    42. failures += checkCase(767, "क", ["क", ""])
    43. failures += checkCase(768, "क̈", ["क̈", ""])
    44. failures += checkCase(769, "क‌", ["क‌"])
    45. failures += checkCase(770, "क̈‌", ["क̈‌"])
    46. failures += checkCase(771, "क🇦", ["क", "🇦"])
    47. failures += checkCase(772, "क̈🇦", ["क̈", "🇦"])
    48. failures += checkCase(773, "क؀", ["क", "؀"])
    49. failures += checkCase(774, "क̈؀", ["क̈", "؀"])
    50. failures += checkCase(775, "कਃ", ["कਃ"])
    51. failures += checkCase(776, "क̈ਃ", ["क̈ਃ"])
    52. failures += checkCase(777, "कᄀ", ["क", "ᄀ"])
    53. failures += checkCase(778, "क̈ᄀ", ["क̈", "ᄀ"])
    54. failures += checkCase(779, "कᅠ", ["क", "ᅠ"])
    55. failures += checkCase(780, "क̈ᅠ", ["क̈", "ᅠ"])
    56. failures += checkCase(781, "कᆨ", ["क", "ᆨ"])
    57. failures += checkCase(782, "क̈ᆨ", ["क̈", "ᆨ"])
    58. failures += checkCase(783, "क가", ["क", "가"])
    59. failures += checkCase(784, "क̈가", ["क̈", "가"])
    60. failures += checkCase(785, "क각", ["क", "각"])
    61. failures += checkCase(786, "क̈각", ["क̈", "각"])
    62. failures += checkCase(787, "कः", ["कः"])
    63. failures += checkCase(788, "क̈ः", ["क̈ः"])
    64. failures += checkCase(789, "कऄ", ["क", "ऄ"])
    65. failures += checkCase(790, "क̈ऄ", ["क̈", "ऄ"])
    66. failures += checkCase(791, "कൎ", ["क", "ൎ"])
    67. failures += checkCase(792, "क̈ൎ", ["क̈", "ൎ"])
    68. failures
    69. }
    graphemecases12.tpzCheck every published Unicode 16 grapheme test rowОткрыть песочницу →
    1. import graphemesupport { checkCase }
    2. export function run() -> int {
    3. let mut failures = 0
    4. failures += checkCase(793, "कक", ["क", "क"])
    5. failures += checkCase(794, "क̈क", ["क̈", "क"])
    6. failures += checkCase(795, "क⌚", ["क", "⌚"])
    7. failures += checkCase(796, "क̈⌚", ["क̈", "⌚"])
    8. failures += checkCase(797, "क̀", ["क̀"])
    9. failures += checkCase(798, "क̈̀", ["क̈̀"])
    10. failures += checkCase(799, "कऀ", ["कऀ"])
    11. failures += checkCase(800, "क̈ऀ", ["क̈ऀ"])
    12. failures += checkCase(801, "क्", ["क्"])
    13. failures += checkCase(802, "क्̈", ["क्̈"])
    14. failures += checkCase(803, "क‍", ["क‍"])
    15. failures += checkCase(804, "क̈‍", ["क̈‍"])
    16. failures += checkCase(805, "क͸", ["क", "͸"])
    17. failures += checkCase(806, "क̈͸", ["क̈", "͸"])
    18. failures += checkCase(807, "⌚ ", ["⌚", " "])
    19. failures += checkCase(808, "⌚̈ ", ["⌚̈", " "])
    20. failures += checkCase(809, "⌚\r", ["⌚", "\r"])
    21. failures += checkCase(810, "⌚̈\r", ["⌚̈", "\r"])
    22. failures += checkCase(811, "⌚\n", ["⌚", "\n"])
    23. failures += checkCase(812, "⌚̈\n", ["⌚̈", "\n"])
    24. failures += checkCase(813, "⌚", ["⌚", ""])
    25. failures += checkCase(814, "⌚̈", ["⌚̈", ""])
    26. failures += checkCase(815, "⌚‌", ["⌚‌"])
    27. failures += checkCase(816, "⌚̈‌", ["⌚̈‌"])
    28. failures += checkCase(817, "⌚🇦", ["⌚", "🇦"])
    29. failures += checkCase(818, "⌚̈🇦", ["⌚̈", "🇦"])
    30. failures += checkCase(819, "⌚؀", ["⌚", "؀"])
    31. failures += checkCase(820, "⌚̈؀", ["⌚̈", "؀"])
    32. failures += checkCase(821, "⌚ਃ", ["⌚ਃ"])
    33. failures += checkCase(822, "⌚̈ਃ", ["⌚̈ਃ"])
    34. failures += checkCase(823, "⌚ᄀ", ["⌚", "ᄀ"])
    35. failures += checkCase(824, "⌚̈ᄀ", ["⌚̈", "ᄀ"])
    36. failures += checkCase(825, "⌚ᅠ", ["⌚", "ᅠ"])
    37. failures += checkCase(826, "⌚̈ᅠ", ["⌚̈", "ᅠ"])
    38. failures += checkCase(827, "⌚ᆨ", ["⌚", "ᆨ"])
    39. failures += checkCase(828, "⌚̈ᆨ", ["⌚̈", "ᆨ"])
    40. failures += checkCase(829, "⌚가", ["⌚", "가"])
    41. failures += checkCase(830, "⌚̈가", ["⌚̈", "가"])
    42. failures += checkCase(831, "⌚각", ["⌚", "각"])
    43. failures += checkCase(832, "⌚̈각", ["⌚̈", "각"])
    44. failures += checkCase(833, "⌚ः", ["⌚ः"])
    45. failures += checkCase(834, "⌚̈ः", ["⌚̈ः"])
    46. failures += checkCase(835, "⌚ऄ", ["⌚", "ऄ"])
    47. failures += checkCase(836, "⌚̈ऄ", ["⌚̈", "ऄ"])
    48. failures += checkCase(837, "⌚ൎ", ["⌚", "ൎ"])
    49. failures += checkCase(838, "⌚̈ൎ", ["⌚̈", "ൎ"])
    50. failures += checkCase(839, "⌚क", ["⌚", "क"])
    51. failures += checkCase(840, "⌚̈क", ["⌚̈", "क"])
    52. failures += checkCase(841, "⌚⌚", ["⌚", "⌚"])
    53. failures += checkCase(842, "⌚̈⌚", ["⌚̈", "⌚"])
    54. failures += checkCase(843, "⌚̀", ["⌚̀"])
    55. failures += checkCase(844, "⌚̈̀", ["⌚̈̀"])
    56. failures += checkCase(845, "⌚ऀ", ["⌚ऀ"])
    57. failures += checkCase(846, "⌚̈ऀ", ["⌚̈ऀ"])
    58. failures += checkCase(847, "⌚्", ["⌚्"])
    59. failures += checkCase(848, "⌚्̈", ["⌚्̈"])
    60. failures += checkCase(849, "⌚‍", ["⌚‍"])
    61. failures += checkCase(850, "⌚̈‍", ["⌚̈‍"])
    62. failures += checkCase(851, "⌚͸", ["⌚", "͸"])
    63. failures += checkCase(852, "⌚̈͸", ["⌚̈", "͸"])
    64. failures += checkCase(853, "̀ ", ["̀", " "])
    65. failures += checkCase(854, "̀̈ ", ["̀̈", " "])
    66. failures += checkCase(855, "̀\r", ["̀", "\r"])
    67. failures += checkCase(856, "̀̈\r", ["̀̈", "\r"])
    68. failures
    69. }
    graphemecases13.tpzCheck every published Unicode 16 grapheme test rowОткрыть песочницу →
    1. import graphemesupport { checkCase }
    2. export function run() -> int {
    3. let mut failures = 0
    4. failures += checkCase(857, "̀\n", ["̀", "\n"])
    5. failures += checkCase(858, "̀̈\n", ["̀̈", "\n"])
    6. failures += checkCase(859, "̀", ["̀", ""])
    7. failures += checkCase(860, "̀̈", ["̀̈", ""])
    8. failures += checkCase(861, "̀‌", ["̀‌"])
    9. failures += checkCase(862, "̀̈‌", ["̀̈‌"])
    10. failures += checkCase(863, "̀🇦", ["̀", "🇦"])
    11. failures += checkCase(864, "̀̈🇦", ["̀̈", "🇦"])
    12. failures += checkCase(865, "̀؀", ["̀", "؀"])
    13. failures += checkCase(866, "̀̈؀", ["̀̈", "؀"])
    14. failures += checkCase(867, "̀ਃ", ["̀ਃ"])
    15. failures += checkCase(868, "̀̈ਃ", ["̀̈ਃ"])
    16. failures += checkCase(869, "̀ᄀ", ["̀", "ᄀ"])
    17. failures += checkCase(870, "̀̈ᄀ", ["̀̈", "ᄀ"])
    18. failures += checkCase(871, "̀ᅠ", ["̀", "ᅠ"])
    19. failures += checkCase(872, "̀̈ᅠ", ["̀̈", "ᅠ"])
    20. failures += checkCase(873, "̀ᆨ", ["̀", "ᆨ"])
    21. failures += checkCase(874, "̀̈ᆨ", ["̀̈", "ᆨ"])
    22. failures += checkCase(875, "̀가", ["̀", "가"])
    23. failures += checkCase(876, "̀̈가", ["̀̈", "가"])
    24. failures += checkCase(877, "̀각", ["̀", "각"])
    25. failures += checkCase(878, "̀̈각", ["̀̈", "각"])
    26. failures += checkCase(879, "̀ः", ["̀ः"])
    27. failures += checkCase(880, "̀̈ः", ["̀̈ः"])
    28. failures += checkCase(881, "̀ऄ", ["̀", "ऄ"])
    29. failures += checkCase(882, "̀̈ऄ", ["̀̈", "ऄ"])
    30. failures += checkCase(883, "̀ൎ", ["̀", "ൎ"])
    31. failures += checkCase(884, "̀̈ൎ", ["̀̈", "ൎ"])
    32. failures += checkCase(885, "̀क", ["̀", "क"])
    33. failures += checkCase(886, "̀̈क", ["̀̈", "क"])
    34. failures += checkCase(887, "̀⌚", ["̀", "⌚"])
    35. failures += checkCase(888, "̀̈⌚", ["̀̈", "⌚"])
    36. failures += checkCase(889, "̀̀", ["̀̀"])
    37. failures += checkCase(890, "̀̈̀", ["̀̈̀"])
    38. failures += checkCase(891, "̀ऀ", ["̀ऀ"])
    39. failures += checkCase(892, "̀̈ऀ", ["̀̈ऀ"])
    40. failures += checkCase(893, "्̀", ["्̀"])
    41. failures += checkCase(894, "्̀̈", ["्̀̈"])
    42. failures += checkCase(895, "̀‍", ["̀‍"])
    43. failures += checkCase(896, "̀̈‍", ["̀̈‍"])
    44. failures += checkCase(897, "̀͸", ["̀", "͸"])
    45. failures += checkCase(898, "̀̈͸", ["̀̈", "͸"])
    46. failures += checkCase(899, "ऀ ", ["ऀ", " "])
    47. failures += checkCase(900, "ऀ̈ ", ["ऀ̈", " "])
    48. failures += checkCase(901, "ऀ\r", ["ऀ", "\r"])
    49. failures += checkCase(902, "ऀ̈\r", ["ऀ̈", "\r"])
    50. failures += checkCase(903, "ऀ\n", ["ऀ", "\n"])
    51. failures += checkCase(904, "ऀ̈\n", ["ऀ̈", "\n"])
    52. failures += checkCase(905, "ऀ", ["ऀ", ""])
    53. failures += checkCase(906, "ऀ̈", ["ऀ̈", ""])
    54. failures += checkCase(907, "ऀ‌", ["ऀ‌"])
    55. failures += checkCase(908, "ऀ̈‌", ["ऀ̈‌"])
    56. failures += checkCase(909, "ऀ🇦", ["ऀ", "🇦"])
    57. failures += checkCase(910, "ऀ̈🇦", ["ऀ̈", "🇦"])
    58. failures += checkCase(911, "ऀ؀", ["ऀ", "؀"])
    59. failures += checkCase(912, "ऀ̈؀", ["ऀ̈", "؀"])
    60. failures += checkCase(913, "ऀਃ", ["ऀਃ"])
    61. failures += checkCase(914, "ऀ̈ਃ", ["ऀ̈ਃ"])
    62. failures += checkCase(915, "ऀᄀ", ["ऀ", "ᄀ"])
    63. failures += checkCase(916, "ऀ̈ᄀ", ["ऀ̈", "ᄀ"])
    64. failures += checkCase(917, "ऀᅠ", ["ऀ", "ᅠ"])
    65. failures += checkCase(918, "ऀ̈ᅠ", ["ऀ̈", "ᅠ"])
    66. failures += checkCase(919, "ऀᆨ", ["ऀ", "ᆨ"])
    67. failures += checkCase(920, "ऀ̈ᆨ", ["ऀ̈", "ᆨ"])
    68. failures
    69. }
    graphemecases14.tpzCheck every published Unicode 16 grapheme test rowОткрыть песочницу →
    1. import graphemesupport { checkCase }
    2. export function run() -> int {
    3. let mut failures = 0
    4. failures += checkCase(921, "ऀ가", ["ऀ", "가"])
    5. failures += checkCase(922, "ऀ̈가", ["ऀ̈", "가"])
    6. failures += checkCase(923, "ऀ각", ["ऀ", "각"])
    7. failures += checkCase(924, "ऀ̈각", ["ऀ̈", "각"])
    8. failures += checkCase(925, "ऀः", ["ऀः"])
    9. failures += checkCase(926, "ऀ̈ः", ["ऀ̈ः"])
    10. failures += checkCase(927, "ऀऄ", ["ऀ", "ऄ"])
    11. failures += checkCase(928, "ऀ̈ऄ", ["ऀ̈", "ऄ"])
    12. failures += checkCase(929, "ऀൎ", ["ऀ", "ൎ"])
    13. failures += checkCase(930, "ऀ̈ൎ", ["ऀ̈", "ൎ"])
    14. failures += checkCase(931, "ऀक", ["ऀ", "क"])
    15. failures += checkCase(932, "ऀ̈क", ["ऀ̈", "क"])
    16. failures += checkCase(933, "ऀ⌚", ["ऀ", "⌚"])
    17. failures += checkCase(934, "ऀ̈⌚", ["ऀ̈", "⌚"])
    18. failures += checkCase(935, "ऀ̀", ["ऀ̀"])
    19. failures += checkCase(936, "ऀ̈̀", ["ऀ̈̀"])
    20. failures += checkCase(937, "ऀऀ", ["ऀऀ"])
    21. failures += checkCase(938, "ऀ̈ऀ", ["ऀ̈ऀ"])
    22. failures += checkCase(939, "ऀ्", ["ऀ्"])
    23. failures += checkCase(940, "ऀ्̈", ["ऀ्̈"])
    24. failures += checkCase(941, "ऀ‍", ["ऀ‍"])
    25. failures += checkCase(942, "ऀ̈‍", ["ऀ̈‍"])
    26. failures += checkCase(943, "ऀ͸", ["ऀ", "͸"])
    27. failures += checkCase(944, "ऀ̈͸", ["ऀ̈", "͸"])
    28. failures += checkCase(945, "् ", ["्", " "])
    29. failures += checkCase(946, "्̈ ", ["्̈", " "])
    30. failures += checkCase(947, "्\r", ["्", "\r"])
    31. failures += checkCase(948, "्̈\r", ["्̈", "\r"])
    32. failures += checkCase(949, "्\n", ["्", "\n"])
    33. failures += checkCase(950, "्̈\n", ["्̈", "\n"])
    34. failures += checkCase(951, "्", ["्", ""])
    35. failures += checkCase(952, "्̈", ["्̈", ""])
    36. failures += checkCase(953, "्‌", ["्‌"])
    37. failures += checkCase(954, "्̈‌", ["्̈‌"])
    38. failures += checkCase(955, "्🇦", ["्", "🇦"])
    39. failures += checkCase(956, "्̈🇦", ["्̈", "🇦"])
    40. failures += checkCase(957, "्؀", ["्", "؀"])
    41. failures += checkCase(958, "्̈؀", ["्̈", "؀"])
    42. failures += checkCase(959, "्ਃ", ["्ਃ"])
    43. failures += checkCase(960, "्̈ਃ", ["्̈ਃ"])
    44. failures += checkCase(961, "्ᄀ", ["्", "ᄀ"])
    45. failures += checkCase(962, "्̈ᄀ", ["्̈", "ᄀ"])
    46. failures += checkCase(963, "्ᅠ", ["्", "ᅠ"])
    47. failures += checkCase(964, "्̈ᅠ", ["्̈", "ᅠ"])
    48. failures += checkCase(965, "्ᆨ", ["्", "ᆨ"])
    49. failures += checkCase(966, "्̈ᆨ", ["्̈", "ᆨ"])
    50. failures += checkCase(967, "्가", ["्", "가"])
    51. failures += checkCase(968, "्̈가", ["्̈", "가"])
    52. failures += checkCase(969, "्각", ["्", "각"])
    53. failures += checkCase(970, "्̈각", ["्̈", "각"])
    54. failures += checkCase(971, "्ः", ["्ः"])
    55. failures += checkCase(972, "्̈ः", ["्̈ः"])
    56. failures += checkCase(973, "्ऄ", ["्", "ऄ"])
    57. failures += checkCase(974, "्̈ऄ", ["्̈", "ऄ"])
    58. failures += checkCase(975, "्ൎ", ["्", "ൎ"])
    59. failures += checkCase(976, "्̈ൎ", ["्̈", "ൎ"])
    60. failures += checkCase(977, "्क", ["्", "क"])
    61. failures += checkCase(978, "्̈क", ["्̈", "क"])
    62. failures += checkCase(979, "्⌚", ["्", "⌚"])
    63. failures += checkCase(980, "्̈⌚", ["्̈", "⌚"])
    64. failures += checkCase(981, "्̀", ["्̀"])
    65. failures += checkCase(982, "्̈̀", ["्̈̀"])
    66. failures += checkCase(983, "्ऀ", ["्ऀ"])
    67. failures += checkCase(984, "्̈ऀ", ["्̈ऀ"])
    68. failures
    69. }
    graphemecases15.tpzCheck every published Unicode 16 grapheme test rowОткрыть песочницу →
    1. import graphemesupport { checkCase }
    2. export function run() -> int {
    3. let mut failures = 0
    4. failures += checkCase(985, "््", ["््"])
    5. failures += checkCase(986, "््̈", ["््̈"])
    6. failures += checkCase(987, "्‍", ["्‍"])
    7. failures += checkCase(988, "्̈‍", ["्̈‍"])
    8. failures += checkCase(989, "्͸", ["्", "͸"])
    9. failures += checkCase(990, "्̈͸", ["्̈", "͸"])
    10. failures += checkCase(991, "‍ ", ["‍", " "])
    11. failures += checkCase(992, "‍̈ ", ["‍̈", " "])
    12. failures += checkCase(993, "‍\r", ["‍", "\r"])
    13. failures += checkCase(994, "‍̈\r", ["‍̈", "\r"])
    14. failures += checkCase(995, "‍\n", ["‍", "\n"])
    15. failures += checkCase(996, "‍̈\n", ["‍̈", "\n"])
    16. failures += checkCase(997, "‍", ["‍", ""])
    17. failures += checkCase(998, "‍̈", ["‍̈", ""])
    18. failures += checkCase(999, "‍‌", ["‍‌"])
    19. failures += checkCase(1000, "‍̈‌", ["‍̈‌"])
    20. failures += checkCase(1001, "‍🇦", ["‍", "🇦"])
    21. failures += checkCase(1002, "‍̈🇦", ["‍̈", "🇦"])
    22. failures += checkCase(1003, "‍؀", ["‍", "؀"])
    23. failures += checkCase(1004, "‍̈؀", ["‍̈", "؀"])
    24. failures += checkCase(1005, "‍ਃ", ["‍ਃ"])
    25. failures += checkCase(1006, "‍̈ਃ", ["‍̈ਃ"])
    26. failures += checkCase(1007, "‍ᄀ", ["‍", "ᄀ"])
    27. failures += checkCase(1008, "‍̈ᄀ", ["‍̈", "ᄀ"])
    28. failures += checkCase(1009, "‍ᅠ", ["‍", "ᅠ"])
    29. failures += checkCase(1010, "‍̈ᅠ", ["‍̈", "ᅠ"])
    30. failures += checkCase(1011, "‍ᆨ", ["‍", "ᆨ"])
    31. failures += checkCase(1012, "‍̈ᆨ", ["‍̈", "ᆨ"])
    32. failures += checkCase(1013, "‍가", ["‍", "가"])
    33. failures += checkCase(1014, "‍̈가", ["‍̈", "가"])
    34. failures += checkCase(1015, "‍각", ["‍", "각"])
    35. failures += checkCase(1016, "‍̈각", ["‍̈", "각"])
    36. failures += checkCase(1017, "‍ः", ["‍ः"])
    37. failures += checkCase(1018, "‍̈ः", ["‍̈ः"])
    38. failures += checkCase(1019, "‍ऄ", ["‍", "ऄ"])
    39. failures += checkCase(1020, "‍̈ऄ", ["‍̈", "ऄ"])
    40. failures += checkCase(1021, "‍ൎ", ["‍", "ൎ"])
    41. failures += checkCase(1022, "‍̈ൎ", ["‍̈", "ൎ"])
    42. failures += checkCase(1023, "‍क", ["‍", "क"])
    43. failures += checkCase(1024, "‍̈क", ["‍̈", "क"])
    44. failures += checkCase(1025, "‍⌚", ["‍", "⌚"])
    45. failures += checkCase(1026, "‍̈⌚", ["‍̈", "⌚"])
    46. failures += checkCase(1027, "‍̀", ["‍̀"])
    47. failures += checkCase(1028, "‍̈̀", ["‍̈̀"])
    48. failures += checkCase(1029, "‍ऀ", ["‍ऀ"])
    49. failures += checkCase(1030, "‍̈ऀ", ["‍̈ऀ"])
    50. failures += checkCase(1031, "‍्", ["‍्"])
    51. failures += checkCase(1032, "‍्̈", ["‍्̈"])
    52. failures += checkCase(1033, "‍‍", ["‍‍"])
    53. failures += checkCase(1034, "‍̈‍", ["‍̈‍"])
    54. failures += checkCase(1035, "‍͸", ["‍", "͸"])
    55. failures += checkCase(1036, "‍̈͸", ["‍̈", "͸"])
    56. failures += checkCase(1037, "͸ ", ["͸", " "])
    57. failures += checkCase(1038, "͸̈ ", ["͸̈", " "])
    58. failures += checkCase(1039, "͸\r", ["͸", "\r"])
    59. failures += checkCase(1040, "͸̈\r", ["͸̈", "\r"])
    60. failures += checkCase(1041, "͸\n", ["͸", "\n"])
    61. failures += checkCase(1042, "͸̈\n", ["͸̈", "\n"])
    62. failures += checkCase(1043, "͸", ["͸", ""])
    63. failures += checkCase(1044, "͸̈", ["͸̈", ""])
    64. failures += checkCase(1045, "͸‌", ["͸‌"])
    65. failures += checkCase(1046, "͸̈‌", ["͸̈‌"])
    66. failures += checkCase(1047, "͸🇦", ["͸", "🇦"])
    67. failures += checkCase(1048, "͸̈🇦", ["͸̈", "🇦"])
    68. failures
    69. }
    graphemecases16.tpzCheck every published Unicode 16 grapheme test rowОткрыть песочницу →
    1. import graphemesupport { checkCase }
    2. export function run() -> int {
    3. let mut failures = 0
    4. failures += checkCase(1049, "͸؀", ["͸", "؀"])
    5. failures += checkCase(1050, "͸̈؀", ["͸̈", "؀"])
    6. failures += checkCase(1051, "͸ਃ", ["͸ਃ"])
    7. failures += checkCase(1052, "͸̈ਃ", ["͸̈ਃ"])
    8. failures += checkCase(1053, "͸ᄀ", ["͸", "ᄀ"])
    9. failures += checkCase(1054, "͸̈ᄀ", ["͸̈", "ᄀ"])
    10. failures += checkCase(1055, "͸ᅠ", ["͸", "ᅠ"])
    11. failures += checkCase(1056, "͸̈ᅠ", ["͸̈", "ᅠ"])
    12. failures += checkCase(1057, "͸ᆨ", ["͸", "ᆨ"])
    13. failures += checkCase(1058, "͸̈ᆨ", ["͸̈", "ᆨ"])
    14. failures += checkCase(1059, "͸가", ["͸", "가"])
    15. failures += checkCase(1060, "͸̈가", ["͸̈", "가"])
    16. failures += checkCase(1061, "͸각", ["͸", "각"])
    17. failures += checkCase(1062, "͸̈각", ["͸̈", "각"])
    18. failures += checkCase(1063, "͸ः", ["͸ः"])
    19. failures += checkCase(1064, "͸̈ः", ["͸̈ः"])
    20. failures += checkCase(1065, "͸ऄ", ["͸", "ऄ"])
    21. failures += checkCase(1066, "͸̈ऄ", ["͸̈", "ऄ"])
    22. failures += checkCase(1067, "͸ൎ", ["͸", "ൎ"])
    23. failures += checkCase(1068, "͸̈ൎ", ["͸̈", "ൎ"])
    24. failures += checkCase(1069, "͸क", ["͸", "क"])
    25. failures += checkCase(1070, "͸̈क", ["͸̈", "क"])
    26. failures += checkCase(1071, "͸⌚", ["͸", "⌚"])
    27. failures += checkCase(1072, "͸̈⌚", ["͸̈", "⌚"])
    28. failures += checkCase(1073, "͸̀", ["͸̀"])
    29. failures += checkCase(1074, "͸̈̀", ["͸̈̀"])
    30. failures += checkCase(1075, "͸ऀ", ["͸ऀ"])
    31. failures += checkCase(1076, "͸̈ऀ", ["͸̈ऀ"])
    32. failures += checkCase(1077, "͸्", ["͸्"])
    33. failures += checkCase(1078, "͸्̈", ["͸्̈"])
    34. failures += checkCase(1079, "͸‍", ["͸‍"])
    35. failures += checkCase(1080, "͸̈‍", ["͸̈‍"])
    36. failures += checkCase(1081, "͸͸", ["͸", "͸"])
    37. failures += checkCase(1082, "͸̈͸", ["͸̈", "͸"])
    38. failures += checkCase(1083, "\r\na\n̈", ["\r\n", "a", "\n", "̈"])
    39. failures += checkCase(1084, "ä", ["ä"])
    40. failures += checkCase(1085, " ‍ن", [" ‍", "ن"])
    41. failures += checkCase(1086, "ن‍ ", ["ن‍", " "])
    42. failures += checkCase(1087, "ᄀᄀ", ["ᄀᄀ"])
    43. failures += checkCase(1088, "각ᄀ", ["각", "ᄀ"])
    44. failures += checkCase(1089, "각ᆨᄀ", ["각ᆨ", "ᄀ"])
    45. failures += checkCase(1090, "🇦🇧🇨b", ["🇦🇧", "🇨", "b"])
    46. failures += checkCase(1091, "a🇦🇧🇨b", ["a", "🇦🇧", "🇨", "b"])
    47. failures += checkCase(1092, "a🇦🇧‍🇨b", ["a", "🇦🇧‍", "🇨", "b"])
    48. failures += checkCase(1093, "a🇦‍🇧🇨b", ["a", "🇦‍", "🇧🇨", "b"])
    49. failures += checkCase(1094, "a🇦🇧🇨🇩b", ["a", "🇦🇧", "🇨🇩", "b"])
    50. failures += checkCase(1095, "a‍", ["a‍"])
    51. failures += checkCase(1096, "äb", ["ä", "b"])
    52. failures += checkCase(1097, "aःb", ["aः", "b"])
    53. failures += checkCase(1098, "a؀b", ["a", "؀b"])
    54. failures += checkCase(1099, "👶🏿👶", ["👶🏿", "👶"])
    55. failures += checkCase(1100, "a🏿👶", ["a🏿", "👶"])
    56. failures += checkCase(1101, "a🏿👶‍🛑", ["a🏿", "👶‍🛑"])
    57. failures += checkCase(1102, "👶🏿̈‍👶🏿", ["👶🏿̈‍👶🏿"])
    58. failures += checkCase(1103, "🛑‍🛑", ["🛑‍🛑"])
    59. failures += checkCase(1104, "a‍🛑", ["a‍", "🛑"])
    60. failures += checkCase(1105, "✁‍✁", ["✁‍✁"])
    61. failures += checkCase(1106, "a‍✁", ["a‍", "✁"])
    62. failures += checkCase(1107, "कत", ["क", "त"])
    63. failures += checkCase(1108, "क्त", ["क्त"])
    64. failures += checkCase(1109, "क््त", ["क््त"])
    65. failures += checkCase(1110, "क्‍त", ["क्‍त"])
    66. failures += checkCase(1111, "क़‍्त", ["क़‍्त"])
    67. failures += checkCase(1112, "क़्‍त", ["क़्‍त"])
    68. failures
    69. }
    graphemecases17.tpzCheck every published Unicode 16 grapheme test rowОткрыть песочницу →
    1. import graphemesupport { checkCase }
    2. export function run() -> int {
    3. let mut failures = 0
    4. failures += checkCase(1113, "क्त्य", ["क्त्य"])
    5. failures += checkCase(1114, "क्a", ["क्", "a"])
    6. failures += checkCase(1115, "a्त", ["a्", "त"])
    7. failures += checkCase(1116, "?्त", ["?्", "त"])
    8. failures += checkCase(1117, "क््त", ["क््त"])
    9. failures
    10. }
    Ожидаемый результат

    Ожидаемый результат

    Выполнение завершается. Код завершения 0.

    Ожидаемый стандартный вывод
    1. Unicode 16.0.0 grapheme corpus passed

    The composer reads every data row of the pinned GraphemeBreakTest.txt. Each row checks cluster boundaries, exact string contents, and reconstruction of the original input. Failure output identifies the source line. The published corpus samples property combinations and sequences rather than every possible string.

    Меню

    Загрузка →