본문으로 건너뛰기
토파즈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.

    Why

    링크

    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.

    메뉴

    다운로드 →