reset LinearMap.size when expanding buckets

This commit is contained in:
Tim Taubert 2012-12-30 19:35:03 +01:00
parent 4be7310be0
commit 4b1d2dc884

View File

@ -173,6 +173,7 @@ pub mod linear {
let mut old_buckets = vec::from_fn(new_capacity, |_i| None);
self.buckets <-> old_buckets;
self.size = 0;
for uint::range(0, old_capacity) |i| {
let mut bucket = None;
bucket <-> old_buckets[i];
@ -583,4 +584,22 @@ pub mod test {
assert m1 == m2;
}
#[test]
pub fn test_expand() {
let mut m = ~LinearMap();
assert m.len() == 0;
assert m.is_empty();
let mut i = 0u;
let old_resize_at = m.resize_at;
while old_resize_at == m.resize_at {
m.insert(i, i);
i += 1;
}
assert m.len() == i;
assert !m.is_empty();
}
}