diff --git a/src/libextra/deque.rs b/src/libextra/deque.rs index a33314b67bc..e9a819d9292 100644 --- a/src/libextra/deque.rs +++ b/src/libextra/deque.rs @@ -500,4 +500,35 @@ mod tests { assert_eq!(capacity(&mut d.elts), 64); } + #[test] + fn test_iter() { + let mut d = Deque::new(); + for std::int::range(0,5) |i| { + d.add_back(i); + } + assert_eq!(d.iter().collect::<~[&int]>(), + ~[&0,&1,&2,&3,&4]); + + for std::int::range(6,9) |i| { + d.add_front(i); + } + assert_eq!(d.iter().collect::<~[&int]>(), + ~[&8,&7,&6,&0,&1,&2,&3,&4]); + } + + #[test] + fn test_rev_iter() { + let mut d = Deque::new(); + for std::int::range(0,5) |i| { + d.add_back(i); + } + assert_eq!(d.rev_iter().collect::<~[&int]>(), + ~[&4,&3,&2,&1,&0]); + + for std::int::range(6,9) |i| { + d.add_front(i); + } + assert_eq!(d.rev_iter().collect::<~[&int]>(), + ~[&4,&3,&2,&1,&0,&6,&7,&8]); + } }