Skip to content

Commit d9daedd

Browse files
committed
BTreeMap: correct tests for alternative choices of B
1 parent 3e826bb commit d9daedd

File tree

3 files changed

+6
-81
lines changed

3 files changed

+6
-81
lines changed

library/alloc/benches/btree/map.rs

-76
Original file line numberDiff line numberDiff line change
@@ -296,11 +296,6 @@ fn fat_val_map(n: usize) -> BTreeMap<usize, [usize; FAT]> {
296296
(0..n).map(|i| (i, [i; FAT])).collect::<BTreeMap<_, _>>()
297297
}
298298

299-
// The returned map has large keys and values.
300-
fn fat_map(n: usize) -> BTreeMap<[usize; FAT], [usize; FAT]> {
301-
(0..n).map(|i| ([i; FAT], [i; FAT])).collect::<BTreeMap<_, _>>()
302-
}
303-
304299
#[bench]
305300
pub fn clone_slim_100(b: &mut Bencher) {
306301
let src = slim_map(100);
@@ -513,74 +508,3 @@ pub fn clone_fat_val_100_and_remove_half(b: &mut Bencher) {
513508
map
514509
})
515510
}
516-
517-
#[bench]
518-
pub fn clone_fat_100(b: &mut Bencher) {
519-
let src = fat_map(100);
520-
b.iter(|| src.clone())
521-
}
522-
523-
#[bench]
524-
pub fn clone_fat_100_and_clear(b: &mut Bencher) {
525-
let src = fat_map(100);
526-
b.iter(|| src.clone().clear())
527-
}
528-
529-
#[bench]
530-
pub fn clone_fat_100_and_drain_all(b: &mut Bencher) {
531-
let src = fat_map(100);
532-
b.iter(|| src.clone().drain_filter(|_, _| true).count())
533-
}
534-
535-
#[bench]
536-
pub fn clone_fat_100_and_drain_half(b: &mut Bencher) {
537-
let src = fat_map(100);
538-
b.iter(|| {
539-
let mut map = src.clone();
540-
assert_eq!(map.drain_filter(|i, _| i[0] % 2 == 0).count(), 100 / 2);
541-
assert_eq!(map.len(), 100 / 2);
542-
})
543-
}
544-
545-
#[bench]
546-
pub fn clone_fat_100_and_into_iter(b: &mut Bencher) {
547-
let src = fat_map(100);
548-
b.iter(|| src.clone().into_iter().count())
549-
}
550-
551-
#[bench]
552-
pub fn clone_fat_100_and_pop_all(b: &mut Bencher) {
553-
let src = fat_map(100);
554-
b.iter(|| {
555-
let mut map = src.clone();
556-
while map.pop_first().is_some() {}
557-
map
558-
});
559-
}
560-
561-
#[bench]
562-
pub fn clone_fat_100_and_remove_all(b: &mut Bencher) {
563-
let src = fat_map(100);
564-
b.iter(|| {
565-
let mut map = src.clone();
566-
while let Some(elt) = map.iter().map(|(&i, _)| i).next() {
567-
let v = map.remove(&elt);
568-
debug_assert!(v.is_some());
569-
}
570-
map
571-
});
572-
}
573-
574-
#[bench]
575-
pub fn clone_fat_100_and_remove_half(b: &mut Bencher) {
576-
let src = fat_map(100);
577-
b.iter(|| {
578-
let mut map = src.clone();
579-
for i in (0..100).step_by(2) {
580-
let v = map.remove(&[i; FAT]);
581-
debug_assert!(v.is_some());
582-
}
583-
assert_eq!(map.len(), 100 / 2);
584-
map
585-
})
586-
}

library/alloc/src/collections/btree/map/tests.rs

+3-2
Original file line numberDiff line numberDiff line change
@@ -136,8 +136,9 @@ impl<'a, K: 'a, V: 'a> NodeRef<marker::Immut<'a>, K, V, marker::LeafOrInternal>
136136
}
137137
}
138138

139-
// Tests our value of MIN_INSERTS_HEIGHT_2. It may change according to the
140-
// implementation of insertion, but it's best to be aware of when it does.
139+
// Tests our value of MIN_INSERTS_HEIGHT_2. Failure may mean you just need to
140+
// adapt that value to match a change in node::CAPACITY or the choices made
141+
// during insertion, otherwise other test cases may fail or be less useful.
141142
#[test]
142143
fn test_levels() {
143144
let mut map = BTreeMap::new();

library/alloc/src/collections/btree/node/tests.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ fn test_partial_cmp_eq() {
103103
#[cfg(target_arch = "x86_64")]
104104
fn test_sizes() {
105105
assert_eq!(core::mem::size_of::<LeafNode<(), ()>>(), 16);
106-
assert_eq!(core::mem::size_of::<LeafNode<i64, i64>>(), 16 + CAPACITY * 8 * 2);
107-
assert_eq!(core::mem::size_of::<InternalNode<(), ()>>(), 112);
108-
assert_eq!(core::mem::size_of::<InternalNode<i64, i64>>(), 112 + CAPACITY * 8 * 2);
106+
assert_eq!(core::mem::size_of::<LeafNode<i64, i64>>(), 16 + CAPACITY * 2 * 8);
107+
assert_eq!(core::mem::size_of::<InternalNode<(), ()>>(), 16 + (CAPACITY + 1) * 8);
108+
assert_eq!(core::mem::size_of::<InternalNode<i64, i64>>(), 16 + (CAPACITY * 3 + 1) * 8);
109109
}

0 commit comments

Comments
 (0)