native-tools/src/test.rs

80 lines
12 KiB
Rust

const WIDTH: u32 = 500;
const LOREM: &str = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam lorem felis, cursus sed erat sit amet, vestibulum laoreet arcu. Phasellus gravida, sapien sit amet tempor convallis, enim tellus euismod nunc, vel maximus metus ante ut ex. In sollicitudin vitae turpis sit amet pharetra. Donec nec ullamcorper urna. Nam orci velit, sollicitudin efficitur gravida at, convallis eu est. Nunc finibus, augue vel consectetur aliquam, turpis dui facilisis diam, sit amet congue augue ipsum ac ex. Donec sit amet orci placerat, mollis nisl in, pretium eros. Maecenas auctor, ligula fermentum condimentum sagittis, libero metus ornare sapien, vitae malesuada tortor est ut arcu. Fusce tincidunt ligula id ornare volutpat.";
const LONG_LOREM: &str = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse elementum pellentesque metus at sagittis. Aenean tellus erat, eleifend eget nibh a, rhoncus bibendum purus. Proin scelerisque venenatis posuere. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam a ante euismod, pharetra quam sodales, sollicitudin est. Praesent tempor nisi ut condimentum dictum. Fusce convallis, est eu vehicula cursus, massa tortor laoreet diam, non iaculis turpis orci in velit. Proin quis pellentesque turpis. Maecenas maximus et nunc eu dapibus. Aliquam sed purus rutrum est volutpat pulvinar. Nunc nec quam sodales, ultrices metus sed, elementum lectus. Fusce porttitor justo magna, convallis dignissim erat pharetra in. Curabitur quis ante ex. Nullam et massa eu enim sollicitudin malesuada nec et metus. Maecenas ac mi velit. Integer pulvinar maximus lectus, eget pretium nisi vestibulum eu. Pellentesque sollicitudin gravida leo et luctus. Integer ut augue sed libero consectetur pellentesque. Cras vitae venenatis leo. Quisque non purus orci. Nam egestas sapien egestas rutrum pharetra. Nunc vitae tristique tortor, sed pulvinar erat. Donec orci mauris, viverra sed ex at, lobortis fermentum lacus. Etiam molestie felis pharetra dolor ullamcorper, ut elementum elit facilisis. Sed ligula diam, porta nec euismod nec, scelerisque at urna. Nullam scelerisque congue volutpat. Aliquam vehicula magna sit amet ipsum ultricies laoreet. Maecenas hendrerit mollis lacus sit amet feugiat. Etiam viverra fermentum fermentum. Vivamus turpis neque, hendrerit sit amet elementum quis, pellentesque ac quam. Nulla vel auctor urna. Donec at varius turpis, sed hendrerit mi. Sed dapibus lacus non gravida auctor. Sed ex augue, venenatis in rhoncus vitae, cursus id diam. Phasellus sed posuere elit, sit amet mattis dolor. Sed sed eros velit. Aenean bibendum lacus non metus imperdiet vestibulum. Etiam ac tortor mauris. Sed maximus ante odio, ut faucibus neque volutpat vel. Nam ac urna eget tortor aliquam lobortis. Quisque ac leo vitae purus tincidunt mollis tempor ac libero. Curabitur ultrices gravida lacus vel malesuada. Praesent luctus vitae mi ac efficitur. Fusce eu mattis libero. Fusce nec dui vel sapien auctor lacinia. Nullam iaculis metus nisl, vel malesuada elit mollis vitae. Phasellus tempus ante et enim eleifend ultricies. Cras elementum dictum risus sed convallis. Donec maximus cursus placerat. Proin nunc purus, bibendum pulvinar suscipit eu, ultrices id felis. Mauris porta sapien nulla, vel hendrerit felis suscipit nec. Suspendisse nunc neque, lobortis nec ipsum ut, aliquam tempor diam. Aliquam dapibus convallis bibendum. Donec id erat consectetur, convallis massa non, eleifend est. Etiam sed molestie quam. Nulla sollicitudin convallis neque, vel consectetur augue mollis at. Nam mollis sapien in lorem feugiat, aliquet pretium tellus rutrum. Mauris elementum lectus malesuada auctor varius. ";
const AAA: &str = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
const KA: &str = "カカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカ";
const EMOJI: &str = "🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵";
#[test]
fn lorem() {
assert_eq!(
crate::inner_wrap(LOREM, WIDTH),
vec![
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam lorem felis, cursus sed erat sit amet, vestibulum laoreet arcu. Phasellus gravida, sapien sit amet tempor convallis, enim tellus euismod nunc, vel maximus metus ante ut ex. In sollicitudin vitae turpis sit amet pharetra. Donec nec ullamcorper urna. Nam orci velit, sollicitudin efficitur gravida at, convallis eu est. Nunc finibus, augue vel consectetur aliquam, turpis dui facilisis diam, sit amet congue augue ipsum ac ex. Donec sit",
"amet orci placerat, mollis nisl in, pretium eros. Maecenas auctor, ligula fermentum condimentum sagittis, libero metus ornare sapien, vitae malesuada tortor est ut arcu. Fusce tincidunt ligula id ornare volutpat.",
],
);
}
#[test]
fn long_lorem() {
assert_eq!(
crate::inner_wrap(LONG_LOREM, WIDTH),
vec![
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse elementum pellentesque metus at sagittis. Aenean tellus erat, eleifend eget nibh a, rhoncus bibendum purus. Proin scelerisque venenatis posuere. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam a ante euismod, pharetra quam sodales, sollicitudin est. Praesent tempor nisi ut",
"condimentum dictum. Fusce convallis, est eu vehicula cursus, massa tortor laoreet diam, non iaculis turpis orci in velit. Proin quis pellentesque turpis. Maecenas maximus et nunc eu dapibus. Aliquam sed purus rutrum est volutpat pulvinar. Nunc nec quam sodales, ultrices metus sed, elementum lectus. Fusce porttitor justo magna, convallis dignissim erat pharetra in. Curabitur quis ante ex. Nullam et massa eu enim sollicitudin malesuada nec et metus. Maecenas ac mi velit. Integer pulvinar maximus",
"lectus, eget pretium nisi vestibulum eu. Pellentesque sollicitudin gravida leo et luctus. Integer ut augue sed libero consectetur pellentesque. Cras vitae venenatis leo. Quisque non purus orci. Nam egestas sapien egestas rutrum pharetra. Nunc vitae tristique tortor, sed pulvinar erat. Donec orci mauris, viverra sed ex at, lobortis fermentum lacus. Etiam molestie felis pharetra dolor ullamcorper, ut elementum elit facilisis. Sed ligula diam, porta nec euismod nec, scelerisque at urna. Nullam",
"scelerisque congue volutpat. Aliquam vehicula magna sit amet ipsum ultricies laoreet. Maecenas hendrerit mollis lacus sit amet feugiat. Etiam viverra fermentum fermentum. Vivamus turpis neque, hendrerit sit amet elementum quis, pellentesque ac quam. Nulla vel auctor urna. Donec at varius turpis, sed hendrerit mi. Sed dapibus lacus non gravida auctor. Sed ex augue, venenatis in rhoncus vitae, cursus id diam. Phasellus sed posuere elit, sit amet mattis dolor. Sed sed eros velit. Aenean bibendum",
"lacus non metus imperdiet vestibulum. Etiam ac tortor mauris. Sed maximus ante odio, ut faucibus neque volutpat vel. Nam ac urna eget tortor aliquam lobortis. Quisque ac leo vitae purus tincidunt mollis tempor ac libero. Curabitur ultrices gravida lacus vel malesuada. Praesent luctus vitae mi ac efficitur. Fusce eu mattis libero. Fusce nec dui vel sapien auctor lacinia. Nullam iaculis metus nisl, vel malesuada elit mollis vitae. Phasellus tempus ante et enim eleifend ultricies. Cras elementum",
"dictum risus sed convallis. Donec maximus cursus placerat. Proin nunc purus, bibendum pulvinar suscipit eu, ultrices id felis. Mauris porta sapien nulla, vel hendrerit felis suscipit nec. Suspendisse nunc neque, lobortis nec ipsum ut, aliquam tempor diam. Aliquam dapibus convallis bibendum. Donec id erat consectetur, convallis massa non, eleifend est. Etiam sed molestie quam. Nulla sollicitudin convallis neque, vel consectetur augue mollis at. Nam mollis sapien in lorem feugiat, aliquet pretium",
"tellus rutrum. Mauris elementum lectus malesuada auctor varius.",
],
);
}
#[test]
fn dense() {
assert_eq!(
crate::inner_wrap(AAA, WIDTH),
vec![
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"a",
],
);
}
#[test]
fn ka() {
assert_eq!(
crate::inner_wrap(KA, WIDTH),
vec![
"カカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカカ",
"カカ",
],
);
}
#[test]
fn emoji() {
assert_eq!(
crate::inner_wrap(EMOJI, WIDTH),
vec![
"🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵",
"🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵",
],
);
}
#[test]
fn hard_break_emoji() {
let mut vec = Vec::new();
crate::hard_break(&mut vec, EMOJI, WIDTH as usize);
assert_eq!(
vec,
vec![
"🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵",
"🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵🇯🇵",
],
);
}