#![feature(test)] | |
extern crate test; | |
use once_cell::sync::Lazy; | |
use ucd_trie::TrieSetOwned; | |
#[bench] | |
fn bench_trie_set(b: &mut test::Bencher) { | |
const CHARS: &'static [char] = &['a', 'β', '☃', '😼']; | |
// const CHARS: &'static [char] = &['a']; | |
static SET: Lazy<TrieSetOwned> = | |
Lazy::new(|| TrieSetOwned::from_scalars(CHARS).unwrap()); | |
let set = Lazy::force(&SET); | |
let mut i = 0; | |
b.iter(|| { | |
let c = CHARS[i]; | |
i = (i + 1) % CHARS.len(); | |
for _ in 0..10000 { | |
assert!(set.contains_char(c)); | |
} | |
}); | |
} |