summaryrefslogtreecommitdiffstats
path: root/third_party/rust/hashbrown/tests/set.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
commit2aa4a82499d4becd2284cdb482213d541b8804dd (patch)
treeb80bf8bf13c3766139fbacc530efd0dd9d54394c /third_party/rust/hashbrown/tests/set.rs
parentInitial commit. (diff)
downloadfirefox-2aa4a82499d4becd2284cdb482213d541b8804dd.tar.xz
firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.zip
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/rust/hashbrown/tests/set.rs')
-rw-r--r--third_party/rust/hashbrown/tests/set.rs30
1 files changed, 30 insertions, 0 deletions
diff --git a/third_party/rust/hashbrown/tests/set.rs b/third_party/rust/hashbrown/tests/set.rs
new file mode 100644
index 0000000000..3fc0717053
--- /dev/null
+++ b/third_party/rust/hashbrown/tests/set.rs
@@ -0,0 +1,30 @@
+#![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);
+ }
+ }
+}