use unicode_normalization::UnicodeNormalization;
pub fn normalize_nfc(s: &str) -> String {
s.nfc().collect()
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn nfc_normalization_composes_decomposed() {
let nfd = "caf\u{0065}\u{0301}";
let nfc = "caf\u{00E9}";
assert_eq!(normalize_nfc(nfd), nfc);
}
#[test]
fn nfc_normalization_preserves_ascii() {
let ascii = "My.Show.S01E01.720p.mkv";
assert_eq!(normalize_nfc(ascii), ascii);
}
#[test]
fn nfc_normalization_preserves_already_nfc() {
let already_nfc = "Stra\u{00DF}e.nzb";
assert_eq!(normalize_nfc(already_nfc), already_nfc);
}
#[test]
fn nfc_normalization_handles_hangul() {
let nfd = "\u{1100}\u{1161}";
let nfc = "\u{AC00}";
assert_eq!(normalize_nfc(nfd), nfc);
}
}