diff options
| author | blake2-ppc <blake2-ppc> | 2013-07-06 05:42:45 +0200 |
|---|---|---|
| committer | blake2-ppc <blake2-ppc> | 2013-07-06 07:26:04 +0200 |
| commit | f88d532734dbddecf81bc1d0ce51d30cb9fc9731 (patch) | |
| tree | fc86b6b8a5883c6275c12d33927c4fe3bcb5add9 | |
| parent | 5d72f3f296b7815a4e8ec7b6b3e03bd7a4ed47ba (diff) | |
| download | rust-f88d532734dbddecf81bc1d0ce51d30cb9fc9731.tar.gz rust-f88d532734dbddecf81bc1d0ce51d30cb9fc9731.zip | |
deque: Add tests for mut_iter and mut_rev_iter
| -rw-r--r-- | src/libextra/deque.rs | 52 |
1 files changed, 51 insertions, 1 deletions
diff --git a/src/libextra/deque.rs b/src/libextra/deque.rs index 04941e9886e..bd7b9d5b51d 100644 --- a/src/libextra/deque.rs +++ b/src/libextra/deque.rs @@ -273,7 +273,7 @@ mod tests { use super::*; use std::cmp::Eq; use std::kinds::Copy; - use std::int; + use std::{int, uint}; use extra::test; #[test] @@ -536,6 +536,8 @@ mod tests { #[test] fn test_iter() { let mut d = Deque::new(); + assert_eq!(d.iter().next(), None); + for int::range(0,5) |i| { d.add_back(i); } @@ -550,6 +552,8 @@ mod tests { #[test] fn test_rev_iter() { let mut d = Deque::new(); + assert_eq!(d.rev_iter().next(), None); + for int::range(0,5) |i| { d.add_back(i); } @@ -562,6 +566,52 @@ mod tests { } #[test] + fn test_mut_iter() { + let mut d = Deque::new(); + assert!(d.mut_iter().next().is_none()); + + for uint::range(0,3) |i| { + d.add_front(i); + } + + for d.mut_iter().enumerate().advance |(i, elt)| { + assert_eq!(*elt, 2 - i); + *elt = i; + } + + { + let mut it = d.mut_iter(); + assert_eq!(*it.next().unwrap(), 0); + assert_eq!(*it.next().unwrap(), 1); + assert_eq!(*it.next().unwrap(), 2); + assert!(it.next().is_none()); + } + } + + #[test] + fn test_mut_rev_iter() { + let mut d = Deque::new(); + assert!(d.mut_rev_iter().next().is_none()); + + for uint::range(0,3) |i| { + d.add_front(i); + } + + for d.mut_rev_iter().enumerate().advance |(i, elt)| { + assert_eq!(*elt, i); + *elt = i; + } + + { + let mut it = d.mut_rev_iter(); + assert_eq!(*it.next().unwrap(), 0); + assert_eq!(*it.next().unwrap(), 1); + assert_eq!(*it.next().unwrap(), 2); + assert!(it.next().is_none()); + } + } + + #[test] fn test_from_iterator() { use std::iterator; let v = ~[1,2,3,4,5,6,7]; |
