更新libclamav库1.0.0版本
This commit is contained in:
122
clamav/libclamav_rust/.cargo/vendor/textwrap/benches/linear.rs
vendored
Normal file
122
clamav/libclamav_rust/.cargo/vendor/textwrap/benches/linear.rs
vendored
Normal file
@@ -0,0 +1,122 @@
|
||||
#![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))
|
||||
}
|
||||
Reference in New Issue
Block a user