diff options
| author | Jonathan S <gereeter+code@gmail.com> | 2016-01-16 22:55:56 -0600 |
|---|---|---|
| committer | Jonathan S <gereeter+code@gmail.com> | 2016-01-16 22:55:56 -0600 |
| commit | be4128d148ae5b0edf9d547530dc5e149697b693 (patch) | |
| tree | 06a0e2366a804fea2225b4b9f270f3e2def66ae7 | |
| parent | cd639d8927674cda3303c4d4af33565dab12b17b (diff) | |
| download | rust-be4128d148ae5b0edf9d547530dc5e149697b693.tar.gz rust-be4128d148ae5b0edf9d547530dc5e149697b693.zip | |
BTreeMap: Add a test for clone
| -rw-r--r-- | src/libcollectionstest/btree/map.rs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/libcollectionstest/btree/map.rs b/src/libcollectionstest/btree/map.rs index dfb72d78d46..c4473b64066 100644 --- a/src/libcollectionstest/btree/map.rs +++ b/src/libcollectionstest/btree/map.rs @@ -346,6 +346,38 @@ fn test_bad_zst() { } } +#[test] +fn test_clone() { + let mut map = BTreeMap::new(); + let size = 100; + assert_eq!(map.len(), 0); + + for i in 0..size { + assert_eq!(map.insert(i, 10*i), None); + assert_eq!(map.len(), i + 1); + assert_eq!(map, map.clone()); + } + + for i in 0..size { + assert_eq!(map.insert(i, 100*i), Some(10*i)); + assert_eq!(map.len(), size); + assert_eq!(map, map.clone()); + } + + for i in 0..size/2 { + assert_eq!(map.remove(&(i*2)), Some(i*200)); + assert_eq!(map.len(), size - i - 1); + assert_eq!(map, map.clone()); + } + + for i in 0..size/2 { + assert_eq!(map.remove(&(2*i)), None); + assert_eq!(map.remove(&(2*i+1)), Some(i*200 + 100)); + assert_eq!(map.len(), size/2 - i - 1); + assert_eq!(map, map.clone()); + } +} + mod bench { use std::collections::BTreeMap; use std::__rand::{Rng, thread_rng}; |
