]> git.lizzy.rs Git - rust.git/commitdiff
deque: Add tests for mut_iter and mut_rev_iter
authorblake2-ppc <blake2-ppc>
Sat, 6 Jul 2013 03:42:45 +0000 (05:42 +0200)
committerblake2-ppc <blake2-ppc>
Sat, 6 Jul 2013 05:26:04 +0000 (07:26 +0200)
src/libextra/deque.rs

index 04941e9886e2e09190674fbb04cb56a1fd543a86..bd7b9d5b51d1c90d88e70520f10267545a7bb94f 100644 (file)
@@ -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 @@ fn test_reserve_at_least() {
     #[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 @@ fn test_iter() {
     #[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);
         }
@@ -561,6 +565,52 @@ fn test_rev_iter() {
         assert_eq!(d.rev_iter().collect::<~[&int]>(), ~[&4,&3,&2,&1,&0,&6,&7,&8]);
     }
 
+    #[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;