test(app-iced): 钉住错行里不可见字符的 U+XXXX 形态(M250 r1 小事 2)
This commit is contained in:
1 parent
14282f3325
commit
c14622f828
1 file changed
+21
@@ -212,3 +212,24 @@ fn visible(ch: char) -> String {
|
|||||||
format!("U+{:04X}", u32::from(ch))
|
format!("U+{:04X}", u32::from(ch))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::visible;
|
||||||
|
|
||||||
|
/// 错行里的字符必须**看得见**:不可见字符写成 `U+XXXX`,可见字符原样(r1 小事 2)。
|
||||||
|
///
|
||||||
|
/// 抓得住:把 `visible` 改回 `ch.to_string()`——`U+00A0` / `U+200B` 那两条立刻红(错行会变成
|
||||||
|
/// 「强调色里有非十六进制字符:」后面一片空白,用户不知道自己错在哪)。
|
||||||
|
/// 抓不住:句子本身(词表在 `unlucky-i18n`)。
|
||||||
|
#[test]
|
||||||
|
fn invisible_characters_are_shown_as_code_points() {
|
||||||
|
assert_eq!(visible('\u{a0}'), "U+00A0", "不换行空格看不见");
|
||||||
|
assert_eq!(visible('\u{200b}'), "U+200B", "零宽空格看不见");
|
||||||
|
assert_eq!(visible('\u{202e}'), "U+202E", "RTL 覆盖符看不见");
|
||||||
|
assert_eq!(visible(' '), "U+0020", "普通空格也看不见");
|
||||||
|
assert_eq!(visible('z'), "z", "可见字符原样");
|
||||||
|
assert_eq!(visible('#'), "#", "ASCII 标点原样");
|
||||||
|
assert_eq!(visible('中'), "中", "非 ASCII 可见字符原样");
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in new issue
Block a user