Fix is_combining_mark table data

* In `scripts/unicode.py`, the data used to generate `is_combining_mark()`
was being passed to the emit function incorrectly, resulting in the
table containing some other data instead. The script is fixed and new
`tables.rs` is generated.

* Add test for `is_combining_mark()` for ASCII chars, as well as a
couple of random chars based on the reported issue.

Fix https://github.com/unicode-rs/unicode-normalization/issues/16
This commit is contained in:
Behnam Esfahbod
2017-06-01 14:38:37 -06:00
parent 3898e77b11
commit 1e74c347b6
3 changed files with 212 additions and 270 deletions
+1 -1
View File
@@ -350,7 +350,7 @@ pub struct Slice {
""")
emit_table(f, "general_category_mark", combine, "&'static [(char, char)]", is_pub=False,
emit_table(f, "general_category_mark", general_category_mark, "&'static [(char, char)]", is_pub=False,
pfun=lambda x: "(%s,%s)" % (escape_char(x[0]), escape_char(x[1])))
f.write("""
+185 -268
View File
@@ -10670,339 +10670,256 @@ pub struct Slice {
}
const general_category_mark: &'static [(char, char)] = &[
('\u{300}','\u{314}'),
('\u{315}','\u{315}'),
('\u{316}','\u{319}'),
('\u{31a}','\u{31a}'),
('\u{31b}','\u{31b}'),
('\u{31c}','\u{320}'),
('\u{321}','\u{322}'),
('\u{323}','\u{326}'),
('\u{327}','\u{328}'),
('\u{329}','\u{333}'),
('\u{334}','\u{338}'),
('\u{339}','\u{33c}'),
('\u{33d}','\u{344}'),
('\u{345}','\u{345}'),
('\u{346}','\u{346}'),
('\u{347}','\u{349}'),
('\u{34a}','\u{34c}'),
('\u{34d}','\u{34e}'),
('\u{350}','\u{352}'),
('\u{353}','\u{356}'),
('\u{357}','\u{357}'),
('\u{358}','\u{358}'),
('\u{359}','\u{35a}'),
('\u{35b}','\u{35b}'),
('\u{35c}','\u{35c}'),
('\u{35d}','\u{35e}'),
('\u{35f}','\u{35f}'),
('\u{360}','\u{361}'),
('\u{362}','\u{362}'),
('\u{363}','\u{36f}'),
('\u{483}','\u{487}'),
('\u{591}','\u{591}'),
('\u{592}','\u{595}'),
('\u{596}','\u{596}'),
('\u{597}','\u{599}'),
('\u{59a}','\u{59a}'),
('\u{59b}','\u{59b}'),
('\u{59c}','\u{5a1}'),
('\u{5a2}','\u{5a7}'),
('\u{5a8}','\u{5a9}'),
('\u{5aa}','\u{5aa}'),
('\u{5ab}','\u{5ac}'),
('\u{5ad}','\u{5ad}'),
('\u{5ae}','\u{5ae}'),
('\u{5af}','\u{5af}'),
('\u{5b0}','\u{5b0}'),
('\u{5b1}','\u{5b1}'),
('\u{5b2}','\u{5b2}'),
('\u{5b3}','\u{5b3}'),
('\u{5b4}','\u{5b4}'),
('\u{5b5}','\u{5b5}'),
('\u{5b6}','\u{5b6}'),
('\u{5b7}','\u{5b7}'),
('\u{5b8}','\u{5b8}'),
('\u{5b9}','\u{5ba}'),
('\u{5bb}','\u{5bb}'),
('\u{5bc}','\u{5bc}'),
('\u{5bd}','\u{5bd}'),
('\u{300}','\u{36f}'),
('\u{483}','\u{489}'),
('\u{591}','\u{5bd}'),
('\u{5bf}','\u{5bf}'),
('\u{5c1}','\u{5c1}'),
('\u{5c2}','\u{5c2}'),
('\u{5c4}','\u{5c4}'),
('\u{5c5}','\u{5c5}'),
('\u{5c1}','\u{5c2}'),
('\u{5c4}','\u{5c5}'),
('\u{5c7}','\u{5c7}'),
('\u{610}','\u{617}'),
('\u{618}','\u{618}'),
('\u{619}','\u{619}'),
('\u{61a}','\u{61a}'),
('\u{64b}','\u{64b}'),
('\u{64c}','\u{64c}'),
('\u{64d}','\u{64d}'),
('\u{64e}','\u{64e}'),
('\u{64f}','\u{64f}'),
('\u{650}','\u{650}'),
('\u{651}','\u{651}'),
('\u{652}','\u{652}'),
('\u{653}','\u{654}'),
('\u{655}','\u{656}'),
('\u{657}','\u{65b}'),
('\u{65c}','\u{65c}'),
('\u{65d}','\u{65e}'),
('\u{65f}','\u{65f}'),
('\u{610}','\u{61a}'),
('\u{64b}','\u{65f}'),
('\u{670}','\u{670}'),
('\u{6d6}','\u{6dc}'),
('\u{6df}','\u{6e2}'),
('\u{6e3}','\u{6e3}'),
('\u{6e4}','\u{6e4}'),
('\u{6df}','\u{6e4}'),
('\u{6e7}','\u{6e8}'),
('\u{6ea}','\u{6ea}'),
('\u{6eb}','\u{6ec}'),
('\u{6ed}','\u{6ed}'),
('\u{6ea}','\u{6ed}'),
('\u{711}','\u{711}'),
('\u{730}','\u{730}'),
('\u{731}','\u{731}'),
('\u{732}','\u{733}'),
('\u{734}','\u{734}'),
('\u{735}','\u{736}'),
('\u{737}','\u{739}'),
('\u{73a}','\u{73a}'),
('\u{73b}','\u{73c}'),
('\u{73d}','\u{73d}'),
('\u{73e}','\u{73e}'),
('\u{73f}','\u{741}'),
('\u{742}','\u{742}'),
('\u{743}','\u{743}'),
('\u{744}','\u{744}'),
('\u{745}','\u{745}'),
('\u{746}','\u{746}'),
('\u{747}','\u{747}'),
('\u{748}','\u{748}'),
('\u{749}','\u{74a}'),
('\u{7eb}','\u{7f1}'),
('\u{7f2}','\u{7f2}'),
('\u{7f3}','\u{7f3}'),
('\u{730}','\u{74a}'),
('\u{7a6}','\u{7b0}'),
('\u{7eb}','\u{7f3}'),
('\u{816}','\u{819}'),
('\u{81b}','\u{823}'),
('\u{825}','\u{827}'),
('\u{829}','\u{82d}'),
('\u{859}','\u{85b}'),
('\u{8d4}','\u{8e1}'),
('\u{8e3}','\u{8e3}'),
('\u{8e4}','\u{8e5}'),
('\u{8e6}','\u{8e6}'),
('\u{8e7}','\u{8e8}'),
('\u{8e9}','\u{8e9}'),
('\u{8ea}','\u{8ec}'),
('\u{8ed}','\u{8ef}'),
('\u{8f0}','\u{8f0}'),
('\u{8f1}','\u{8f1}'),
('\u{8f2}','\u{8f2}'),
('\u{8f3}','\u{8f5}'),
('\u{8f6}','\u{8f6}'),
('\u{8f7}','\u{8f8}'),
('\u{8f9}','\u{8fa}'),
('\u{8fb}','\u{8ff}'),
('\u{93c}','\u{93c}'),
('\u{94d}','\u{94d}'),
('\u{951}','\u{951}'),
('\u{952}','\u{952}'),
('\u{953}','\u{954}'),
('\u{8e3}','\u{903}'),
('\u{93a}','\u{93c}'),
('\u{93e}','\u{94f}'),
('\u{951}','\u{957}'),
('\u{962}','\u{963}'),
('\u{981}','\u{983}'),
('\u{9bc}','\u{9bc}'),
('\u{9cd}','\u{9cd}'),
('\u{9be}','\u{9c4}'),
('\u{9c7}','\u{9c8}'),
('\u{9cb}','\u{9cd}'),
('\u{9d7}','\u{9d7}'),
('\u{9e2}','\u{9e3}'),
('\u{a01}','\u{a03}'),
('\u{a3c}','\u{a3c}'),
('\u{a4d}','\u{a4d}'),
('\u{a3e}','\u{a42}'),
('\u{a47}','\u{a48}'),
('\u{a4b}','\u{a4d}'),
('\u{a51}','\u{a51}'),
('\u{a70}','\u{a71}'),
('\u{a75}','\u{a75}'),
('\u{a81}','\u{a83}'),
('\u{abc}','\u{abc}'),
('\u{acd}','\u{acd}'),
('\u{abe}','\u{ac5}'),
('\u{ac7}','\u{ac9}'),
('\u{acb}','\u{acd}'),
('\u{ae2}','\u{ae3}'),
('\u{b01}','\u{b03}'),
('\u{b3c}','\u{b3c}'),
('\u{b4d}','\u{b4d}'),
('\u{bcd}','\u{bcd}'),
('\u{c4d}','\u{c4d}'),
('\u{c55}','\u{c55}'),
('\u{c56}','\u{c56}'),
('\u{b3e}','\u{b44}'),
('\u{b47}','\u{b48}'),
('\u{b4b}','\u{b4d}'),
('\u{b56}','\u{b57}'),
('\u{b62}','\u{b63}'),
('\u{b82}','\u{b82}'),
('\u{bbe}','\u{bc2}'),
('\u{bc6}','\u{bc8}'),
('\u{bca}','\u{bcd}'),
('\u{bd7}','\u{bd7}'),
('\u{c00}','\u{c03}'),
('\u{c3e}','\u{c44}'),
('\u{c46}','\u{c48}'),
('\u{c4a}','\u{c4d}'),
('\u{c55}','\u{c56}'),
('\u{c62}','\u{c63}'),
('\u{c81}','\u{c83}'),
('\u{cbc}','\u{cbc}'),
('\u{ccd}','\u{ccd}'),
('\u{d4d}','\u{d4d}'),
('\u{cbe}','\u{cc4}'),
('\u{cc6}','\u{cc8}'),
('\u{cca}','\u{ccd}'),
('\u{cd5}','\u{cd6}'),
('\u{ce2}','\u{ce3}'),
('\u{d01}','\u{d03}'),
('\u{d3e}','\u{d44}'),
('\u{d46}','\u{d48}'),
('\u{d4a}','\u{d4d}'),
('\u{d57}','\u{d57}'),
('\u{d62}','\u{d63}'),
('\u{d82}','\u{d83}'),
('\u{dca}','\u{dca}'),
('\u{e38}','\u{e39}'),
('\u{e3a}','\u{e3a}'),
('\u{e48}','\u{e4b}'),
('\u{eb8}','\u{eb9}'),
('\u{ec8}','\u{ecb}'),
('\u{dcf}','\u{dd4}'),
('\u{dd6}','\u{dd6}'),
('\u{dd8}','\u{ddf}'),
('\u{df2}','\u{df3}'),
('\u{e31}','\u{e31}'),
('\u{e34}','\u{e3a}'),
('\u{e47}','\u{e4e}'),
('\u{eb1}','\u{eb1}'),
('\u{eb4}','\u{eb9}'),
('\u{ebb}','\u{ebc}'),
('\u{ec8}','\u{ecd}'),
('\u{f18}','\u{f19}'),
('\u{f35}','\u{f35}'),
('\u{f37}','\u{f37}'),
('\u{f39}','\u{f39}'),
('\u{f71}','\u{f71}'),
('\u{f72}','\u{f72}'),
('\u{f74}','\u{f74}'),
('\u{f7a}','\u{f7d}'),
('\u{f80}','\u{f80}'),
('\u{f82}','\u{f83}'),
('\u{f84}','\u{f84}'),
('\u{f3e}','\u{f3f}'),
('\u{f71}','\u{f84}'),
('\u{f86}','\u{f87}'),
('\u{f8d}','\u{f97}'),
('\u{f99}','\u{fbc}'),
('\u{fc6}','\u{fc6}'),
('\u{1037}','\u{1037}'),
('\u{1039}','\u{103a}'),
('\u{108d}','\u{108d}'),
('\u{102b}','\u{103e}'),
('\u{1056}','\u{1059}'),
('\u{105e}','\u{1060}'),
('\u{1062}','\u{1064}'),
('\u{1067}','\u{106d}'),
('\u{1071}','\u{1074}'),
('\u{1082}','\u{108d}'),
('\u{108f}','\u{108f}'),
('\u{109a}','\u{109d}'),
('\u{135d}','\u{135f}'),
('\u{1714}','\u{1714}'),
('\u{1734}','\u{1734}'),
('\u{17d2}','\u{17d2}'),
('\u{1712}','\u{1714}'),
('\u{1732}','\u{1734}'),
('\u{1752}','\u{1753}'),
('\u{1772}','\u{1773}'),
('\u{17b4}','\u{17d3}'),
('\u{17dd}','\u{17dd}'),
('\u{180b}','\u{180d}'),
('\u{1885}','\u{1886}'),
('\u{18a9}','\u{18a9}'),
('\u{1939}','\u{1939}'),
('\u{193a}','\u{193a}'),
('\u{193b}','\u{193b}'),
('\u{1a17}','\u{1a17}'),
('\u{1a18}','\u{1a18}'),
('\u{1a60}','\u{1a60}'),
('\u{1a75}','\u{1a7c}'),
('\u{1920}','\u{192b}'),
('\u{1930}','\u{193b}'),
('\u{1a17}','\u{1a1b}'),
('\u{1a55}','\u{1a5e}'),
('\u{1a60}','\u{1a7c}'),
('\u{1a7f}','\u{1a7f}'),
('\u{1ab0}','\u{1ab4}'),
('\u{1ab5}','\u{1aba}'),
('\u{1abb}','\u{1abc}'),
('\u{1abd}','\u{1abd}'),
('\u{1b34}','\u{1b34}'),
('\u{1b44}','\u{1b44}'),
('\u{1b6b}','\u{1b6b}'),
('\u{1b6c}','\u{1b6c}'),
('\u{1b6d}','\u{1b73}'),
('\u{1baa}','\u{1bab}'),
('\u{1be6}','\u{1be6}'),
('\u{1bf2}','\u{1bf3}'),
('\u{1c37}','\u{1c37}'),
('\u{1ab0}','\u{1abe}'),
('\u{1b00}','\u{1b04}'),
('\u{1b34}','\u{1b44}'),
('\u{1b6b}','\u{1b73}'),
('\u{1b80}','\u{1b82}'),
('\u{1ba1}','\u{1bad}'),
('\u{1be6}','\u{1bf3}'),
('\u{1c24}','\u{1c37}'),
('\u{1cd0}','\u{1cd2}'),
('\u{1cd4}','\u{1cd4}'),
('\u{1cd5}','\u{1cd9}'),
('\u{1cda}','\u{1cdb}'),
('\u{1cdc}','\u{1cdf}'),
('\u{1ce0}','\u{1ce0}'),
('\u{1ce2}','\u{1ce8}'),
('\u{1cd4}','\u{1ce8}'),
('\u{1ced}','\u{1ced}'),
('\u{1cf4}','\u{1cf4}'),
('\u{1cf2}','\u{1cf4}'),
('\u{1cf8}','\u{1cf9}'),
('\u{1dc0}','\u{1dc1}'),
('\u{1dc2}','\u{1dc2}'),
('\u{1dc3}','\u{1dc9}'),
('\u{1dca}','\u{1dca}'),
('\u{1dcb}','\u{1dcc}'),
('\u{1dcd}','\u{1dcd}'),
('\u{1dce}','\u{1dce}'),
('\u{1dcf}','\u{1dcf}'),
('\u{1dd0}','\u{1dd0}'),
('\u{1dd1}','\u{1df5}'),
('\u{1dfb}','\u{1dfb}'),
('\u{1dfc}','\u{1dfc}'),
('\u{1dfd}','\u{1dfd}'),
('\u{1dfe}','\u{1dfe}'),
('\u{1dff}','\u{1dff}'),
('\u{20d0}','\u{20d1}'),
('\u{20d2}','\u{20d3}'),
('\u{20d4}','\u{20d7}'),
('\u{20d8}','\u{20da}'),
('\u{20db}','\u{20dc}'),
('\u{20e1}','\u{20e1}'),
('\u{20e5}','\u{20e6}'),
('\u{20e7}','\u{20e7}'),
('\u{20e8}','\u{20e8}'),
('\u{20e9}','\u{20e9}'),
('\u{20ea}','\u{20eb}'),
('\u{20ec}','\u{20ef}'),
('\u{20f0}','\u{20f0}'),
('\u{1dc0}','\u{1df5}'),
('\u{1dfb}','\u{1dff}'),
('\u{20d0}','\u{20f0}'),
('\u{2cef}','\u{2cf1}'),
('\u{2d7f}','\u{2d7f}'),
('\u{2de0}','\u{2dff}'),
('\u{302a}','\u{302a}'),
('\u{302b}','\u{302b}'),
('\u{302c}','\u{302c}'),
('\u{302d}','\u{302d}'),
('\u{302e}','\u{302f}'),
('\u{302a}','\u{302f}'),
('\u{3099}','\u{309a}'),
('\u{a66f}','\u{a66f}'),
('\u{a66f}','\u{a672}'),
('\u{a674}','\u{a67d}'),
('\u{a69e}','\u{a69f}'),
('\u{a6f0}','\u{a6f1}'),
('\u{a802}','\u{a802}'),
('\u{a806}','\u{a806}'),
('\u{a8c4}','\u{a8c4}'),
('\u{a80b}','\u{a80b}'),
('\u{a823}','\u{a827}'),
('\u{a880}','\u{a881}'),
('\u{a8b4}','\u{a8c5}'),
('\u{a8e0}','\u{a8f1}'),
('\u{a92b}','\u{a92d}'),
('\u{a953}','\u{a953}'),
('\u{a9b3}','\u{a9b3}'),
('\u{a9c0}','\u{a9c0}'),
('\u{a926}','\u{a92d}'),
('\u{a947}','\u{a953}'),
('\u{a980}','\u{a983}'),
('\u{a9b3}','\u{a9c0}'),
('\u{a9e5}','\u{a9e5}'),
('\u{aa29}','\u{aa36}'),
('\u{aa43}','\u{aa43}'),
('\u{aa4c}','\u{aa4d}'),
('\u{aa7b}','\u{aa7d}'),
('\u{aab0}','\u{aab0}'),
('\u{aab2}','\u{aab3}'),
('\u{aab4}','\u{aab4}'),
('\u{aab2}','\u{aab4}'),
('\u{aab7}','\u{aab8}'),
('\u{aabe}','\u{aabf}'),
('\u{aac1}','\u{aac1}'),
('\u{aaf6}','\u{aaf6}'),
('\u{abed}','\u{abed}'),
('\u{aaeb}','\u{aaef}'),
('\u{aaf5}','\u{aaf6}'),
('\u{abe3}','\u{abea}'),
('\u{abec}','\u{abed}'),
('\u{fb1e}','\u{fb1e}'),
('\u{fe20}','\u{fe26}'),
('\u{fe27}','\u{fe2d}'),
('\u{fe2e}','\u{fe2f}'),
('\u{fe00}','\u{fe0f}'),
('\u{fe20}','\u{fe2f}'),
('\u{101fd}','\u{101fd}'),
('\u{102e0}','\u{102e0}'),
('\u{10376}','\u{1037a}'),
('\u{10a0d}','\u{10a0d}'),
('\u{10a0f}','\u{10a0f}'),
('\u{10a38}','\u{10a38}'),
('\u{10a39}','\u{10a39}'),
('\u{10a3a}','\u{10a3a}'),
('\u{10a01}','\u{10a03}'),
('\u{10a05}','\u{10a06}'),
('\u{10a0c}','\u{10a0f}'),
('\u{10a38}','\u{10a3a}'),
('\u{10a3f}','\u{10a3f}'),
('\u{10ae5}','\u{10ae5}'),
('\u{10ae6}','\u{10ae6}'),
('\u{11046}','\u{11046}'),
('\u{1107f}','\u{1107f}'),
('\u{110b9}','\u{110b9}'),
('\u{110ba}','\u{110ba}'),
('\u{10ae5}','\u{10ae6}'),
('\u{11000}','\u{11002}'),
('\u{11038}','\u{11046}'),
('\u{1107f}','\u{11082}'),
('\u{110b0}','\u{110ba}'),
('\u{11100}','\u{11102}'),
('\u{11133}','\u{11134}'),
('\u{11127}','\u{11134}'),
('\u{11173}','\u{11173}'),
('\u{111c0}','\u{111c0}'),
('\u{111ca}','\u{111ca}'),
('\u{11235}','\u{11235}'),
('\u{11236}','\u{11236}'),
('\u{112e9}','\u{112e9}'),
('\u{112ea}','\u{112ea}'),
('\u{11180}','\u{11182}'),
('\u{111b3}','\u{111c0}'),
('\u{111ca}','\u{111cc}'),
('\u{1122c}','\u{11237}'),
('\u{1123e}','\u{1123e}'),
('\u{112df}','\u{112ea}'),
('\u{11300}','\u{11303}'),
('\u{1133c}','\u{1133c}'),
('\u{1134d}','\u{1134d}'),
('\u{1133e}','\u{11344}'),
('\u{11347}','\u{11348}'),
('\u{1134b}','\u{1134d}'),
('\u{11357}','\u{11357}'),
('\u{11362}','\u{11363}'),
('\u{11366}','\u{1136c}'),
('\u{11370}','\u{11374}'),
('\u{11442}','\u{11442}'),
('\u{11446}','\u{11446}'),
('\u{114c2}','\u{114c2}'),
('\u{114c3}','\u{114c3}'),
('\u{115bf}','\u{115bf}'),
('\u{115c0}','\u{115c0}'),
('\u{1163f}','\u{1163f}'),
('\u{116b6}','\u{116b6}'),
('\u{116b7}','\u{116b7}'),
('\u{1172b}','\u{1172b}'),
('\u{11c3f}','\u{11c3f}'),
('\u{11435}','\u{11446}'),
('\u{114b0}','\u{114c3}'),
('\u{115af}','\u{115b5}'),
('\u{115b8}','\u{115c0}'),
('\u{115dc}','\u{115dd}'),
('\u{11630}','\u{11640}'),
('\u{116ab}','\u{116b7}'),
('\u{1171d}','\u{1172b}'),
('\u{11c2f}','\u{11c36}'),
('\u{11c38}','\u{11c3f}'),
('\u{11c92}','\u{11ca7}'),
('\u{11ca9}','\u{11cb6}'),
('\u{16af0}','\u{16af4}'),
('\u{16b30}','\u{16b36}'),
('\u{1bc9e}','\u{1bc9e}'),
('\u{1d165}','\u{1d166}'),
('\u{1d167}','\u{1d169}'),
('\u{1d16d}','\u{1d16d}'),
('\u{1d16e}','\u{1d172}'),
('\u{16f51}','\u{16f7e}'),
('\u{16f8f}','\u{16f92}'),
('\u{1bc9d}','\u{1bc9e}'),
('\u{1d165}','\u{1d169}'),
('\u{1d16d}','\u{1d172}'),
('\u{1d17b}','\u{1d182}'),
('\u{1d185}','\u{1d189}'),
('\u{1d18a}','\u{1d18b}'),
('\u{1d185}','\u{1d18b}'),
('\u{1d1aa}','\u{1d1ad}'),
('\u{1d242}','\u{1d244}'),
('\u{1da00}','\u{1da36}'),
('\u{1da3b}','\u{1da6c}'),
('\u{1da75}','\u{1da75}'),
('\u{1da84}','\u{1da84}'),
('\u{1da9b}','\u{1da9f}'),
('\u{1daa1}','\u{1daaf}'),
('\u{1e000}','\u{1e006}'),
('\u{1e008}','\u{1e018}'),
('\u{1e01b}','\u{1e021}'),
('\u{1e023}','\u{1e024}'),
('\u{1e026}','\u{1e02a}'),
('\u{1e8d0}','\u{1e8d6}'),
('\u{1e944}','\u{1e949}'),
('\u{1e94a}','\u{1e94a}'),
('\u{1e944}','\u{1e94a}'),
('\u{e0100}','\u{e01ef}'),
];
+26 -1
View File
@@ -8,7 +8,11 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
use UnicodeNormalization;
use std::char;
use super::UnicodeNormalization;
use super::char::is_combining_mark;
#[test]
fn test_nfd() {
@@ -154,3 +158,24 @@ fn test_official() {
}
}
}
#[test]
fn test_is_combining_mark_ascii() {
for cp in 0..0x7f {
assert!(!is_combining_mark(char::from_u32(cp).unwrap()));
}
}
#[test]
fn test_is_combining_mark_misc() {
// https://github.com/unicode-rs/unicode-normalization/issues/16
// U+11C3A BHAIKSUKI VOWEL SIGN O
// Category: Mark, Nonspacing [Mn]
assert!(is_combining_mark('\u{11C3A}'));
// U+11C3F BHAIKSUKI SIGN VIRAMA
// Category: Mark, Nonspacing [Mn]
assert!(is_combining_mark('\u{11C3F}'));
}