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