diff options
Diffstat (limited to 'textwrap/benches/linear.rs')
-rw-r--r-- | textwrap/benches/linear.rs | 122 |
1 files changed, 0 insertions, 122 deletions
diff --git a/textwrap/benches/linear.rs b/textwrap/benches/linear.rs deleted file mode 100644 index 104398a..0000000 --- a/textwrap/benches/linear.rs +++ /dev/null @@ -1,122 +0,0 @@ -#![feature(test)] - -// The benchmarks here verify that the complexity grows as O(*n*) -// where *n* is the number of characters in the text to be wrapped. - -#[cfg(feature = "hyphenation")] -extern crate hyphenation; -extern crate lipsum; -extern crate rand; -extern crate rand_xorshift; -extern crate test; -extern crate textwrap; - -#[cfg(feature = "hyphenation")] -use hyphenation::{Language, Load, Standard}; -use lipsum::MarkovChain; -use rand::SeedableRng; -use rand_xorshift::XorShiftRng; -use test::Bencher; -#[cfg(feature = "hyphenation")] -use textwrap::Wrapper; - -const LINE_LENGTH: usize = 60; - -/// Generate a lorem ipsum text with the given number of characters. -fn lorem_ipsum(length: usize) -> String { - // The average word length in the lorem ipsum text is somewhere - // between 6 and 7. So we conservatively divide by 5 to have a - // long enough text that we can truncate below. - let rng = XorShiftRng::seed_from_u64(0); - let mut chain = MarkovChain::new_with_rng(rng); - chain.learn(lipsum::LOREM_IPSUM); - chain.learn(lipsum::LIBER_PRIMUS); - - let mut text = chain.generate_from(length / 5, ("Lorem", "ipsum")); - text.truncate(length); - text -} - -#[bench] -fn fill_100(b: &mut Bencher) { - let text = &lorem_ipsum(100); - b.iter(|| textwrap::fill(text, LINE_LENGTH)) -} - -#[bench] -fn fill_200(b: &mut Bencher) { - let text = &lorem_ipsum(200); - b.iter(|| textwrap::fill(text, LINE_LENGTH)) -} - -#[bench] -fn fill_400(b: &mut Bencher) { - let text = &lorem_ipsum(400); - b.iter(|| textwrap::fill(text, LINE_LENGTH)) -} - -#[bench] -fn fill_800(b: &mut Bencher) { - let text = &lorem_ipsum(800); - b.iter(|| textwrap::fill(text, LINE_LENGTH)) -} - -#[bench] -fn wrap_100(b: &mut Bencher) { - let text = &lorem_ipsum(100); - b.iter(|| textwrap::wrap(text, LINE_LENGTH)) -} - -#[bench] -fn wrap_200(b: &mut Bencher) { - let text = &lorem_ipsum(200); - b.iter(|| textwrap::wrap(text, LINE_LENGTH)) -} - -#[bench] -fn wrap_400(b: &mut Bencher) { - let text = &lorem_ipsum(400); - b.iter(|| textwrap::wrap(text, LINE_LENGTH)) -} - -#[bench] -fn wrap_800(b: &mut Bencher) { - let text = &lorem_ipsum(800); - b.iter(|| textwrap::wrap(text, LINE_LENGTH)) -} - -#[bench] -#[cfg(feature = "hyphenation")] -fn hyphenation_fill_100(b: &mut Bencher) { - let text = &lorem_ipsum(100); - let dictionary = Standard::from_embedded(Language::Latin).unwrap(); - let wrapper = Wrapper::with_splitter(LINE_LENGTH, dictionary); - b.iter(|| wrapper.fill(text)) -} - -#[bench] -#[cfg(feature = "hyphenation")] -fn hyphenation_fill_200(b: &mut Bencher) { - let text = &lorem_ipsum(200); - let dictionary = Standard::from_embedded(Language::Latin).unwrap(); - let wrapper = Wrapper::with_splitter(LINE_LENGTH, dictionary); - b.iter(|| wrapper.fill(text)) -} - -#[bench] -#[cfg(feature = "hyphenation")] -fn hyphenation_fill_400(b: &mut Bencher) { - let text = &lorem_ipsum(400); - let dictionary = Standard::from_embedded(Language::Latin).unwrap(); - let wrapper = Wrapper::with_splitter(LINE_LENGTH, dictionary); - b.iter(|| wrapper.fill(text)) -} - -#[bench] -#[cfg(feature = "hyphenation")] -fn hyphenation_fill_800(b: &mut Bencher) { - let text = &lorem_ipsum(800); - let dictionary = Standard::from_embedded(Language::Latin).unwrap(); - let wrapper = Wrapper::with_splitter(LINE_LENGTH, dictionary); - b.iter(|| wrapper.fill(text)) -} |