use crate::unicode::ucd_generated_case_mapping::SORTED_TITLECASE_MAPPING;
#[allow(clippy::module_name_repetitions)]
#[must_use]
pub fn to_titlecase(c: char) -> [char; 3] {
super::mapping::lookup_table(c, SORTED_TITLECASE_MAPPING)
}
#[cfg(test)]
mod tests {
use alloc::vec::Vec;
use super::to_titlecase;
use crate::unicode::std_case_mapping_iter::CaseMappingIter;
#[test]
fn test_char_to_titlecase() {
assert_eq!(
CaseMappingIter::new(to_titlecase('ß')).collect::<Vec<_>>(),
['S', 's']
);
assert_eq!(
CaseMappingIter::new(to_titlecase('DŽ')).collect::<Vec<_>>(),
['Dž']
);
assert_eq!(
CaseMappingIter::new(to_titlecase('ffl')).collect::<Vec<_>>(),
['F', 'f', 'l']
);
assert_eq!(
CaseMappingIter::new(to_titlecase('i')).collect::<Vec<_>>(),
['I']
);
assert_eq!(
CaseMappingIter::new(to_titlecase('A')).collect::<Vec<_>>(),
['A']
);
}
#[test]
fn test_next_back() {
let mut iter = CaseMappingIter::new(to_titlecase('ffl'));
assert_eq!(iter.next_back(), Some('l'));
assert_eq!(iter.next_back(), Some('f'));
assert_eq!(iter.next_back(), Some('F'));
assert_eq!(iter.next_back(), None);
}
}