diff options
| author | Piotr Czarnecki <pioczarn@gmail.com> | 2016-03-05 13:07:38 +0100 |
|---|---|---|
| committer | Piotr Czarnecki <pioczarn@gmail.com> | 2016-03-05 22:22:38 +0100 |
| commit | 0adcd641149bd32cb3d6d7ea8a8140322e500ae1 (patch) | |
| tree | c916c58017f72035f7e88bb02b5c2aeca14abb14 /src/libstd | |
| parent | c20cd8fac97fe4d4594d6f78b3adb0e9b171c3bf (diff) | |
| download | rust-0adcd641149bd32cb3d6d7ea8a8140322e500ae1.tar.gz rust-0adcd641149bd32cb3d6d7ea8a8140322e500ae1.zip | |
Add tests
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/collections/hash/map.rs | 42 |
1 files changed, 40 insertions, 2 deletions
diff --git a/src/libstd/collections/hash/map.rs b/src/libstd/collections/hash/map.rs index c83c432fc95..86d7aef3d58 100644 --- a/src/libstd/collections/hash/map.rs +++ b/src/libstd/collections/hash/map.rs @@ -1706,6 +1706,20 @@ mod test_map { assert_eq!(*m.get(&2).unwrap(), 4); } + #[test] + fn test_clone() { + let mut m = HashMap::new(); + assert_eq!(m.len(), 0); + assert!(m.insert(1, 2).is_none()); + assert_eq!(m.len(), 1); + assert!(m.insert(2, 4).is_none()); + assert_eq!(m.len(), 2); + let m2 = m.clone(); + assert_eq!(*m2.get(&1).unwrap(), 2); + assert_eq!(*m2.get(&2).unwrap(), 4); + assert_eq!(m2.len(), 2); + } + thread_local! { static DROP_VECTOR: RefCell<Vec<isize>> = RefCell::new(Vec::new()) } #[derive(Hash, PartialEq, Eq)] @@ -1797,7 +1811,7 @@ mod test_map { } #[test] - fn test_move_iter_drops() { + fn test_into_iter_drops() { DROP_VECTOR.with(|v| { *v.borrow_mut() = vec![0; 200]; }); @@ -1862,12 +1876,36 @@ mod test_map { } #[test] - fn test_empty_pop() { + fn test_empty_remove() { let mut m: HashMap<isize, bool> = HashMap::new(); assert_eq!(m.remove(&0), None); } #[test] + fn test_empty_entry() { + let mut m: HashMap<isize, bool> = HashMap::new(); + match m.entry(0) { + Occupied(_) => panic!(), + Vacant(_) => {} + } + assert!(*m.entry(0).or_insert(true)); + assert_eq!(m.len(), 1); + } + + #[test] + fn test_empty_iter() { + let mut m: HashMap<isize, bool> = HashMap::new(); + assert_eq!(m.drain().next(), None); + assert_eq!(m.keys().next(), None); + assert_eq!(m.values().next(), None); + assert_eq!(m.iter().next(), None); + assert_eq!(m.iter_mut().next(), None); + assert_eq!(m.len(), 0); + assert!(m.is_empty()); + assert_eq!(m.into_iter().next(), None); + } + + #[test] fn test_lots_of_insertions() { let mut m = HashMap::new(); |
