mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-01-09 06:22:49 +00:00
31 lines
960 B
Rust
31 lines
960 B
Rust
#![cfg(not(miri))] // FIXME: takes too long
|
|
|
|
use hashbrown::HashSet;
|
|
use rand::{distributions::Alphanumeric, rngs::SmallRng, Rng, SeedableRng};
|
|
|
|
#[test]
|
|
fn test_hashset_insert_remove() {
|
|
let mut m: HashSet<Vec<char>> = HashSet::new();
|
|
//let num: u32 = 4096;
|
|
//let tx: Vec<Vec<u8>> = (0..num).map(|i| (i..(16 + i)).collect()).collect();
|
|
let seed: [u8; 16] = [
|
|
130, 220, 246, 217, 111, 124, 221, 189, 190, 234, 121, 93, 67, 95, 100, 43,
|
|
];
|
|
|
|
let rng = &mut SmallRng::from_seed(seed);
|
|
let tx: Vec<Vec<char>> = (0..4096)
|
|
.map(|_| (rng.sample_iter(&Alphanumeric).take(32).collect()))
|
|
.collect();
|
|
|
|
for _ in 0..32 {
|
|
for i in 0..4096 {
|
|
assert_eq!(m.contains(&tx[i].clone()), false);
|
|
assert_eq!(m.insert(tx[i].clone()), true);
|
|
}
|
|
for i in 0..4096 {
|
|
println!("removing {} {:?}", i, tx[i]);
|
|
assert_eq!(m.remove(&tx[i]), true);
|
|
}
|
|
}
|
|
}
|