about summary refs log tree commit diff
diff options
context:
space:
mode:
authorblake2-ppc <blake2-ppc>2013-07-06 05:42:45 +0200
committerblake2-ppc <blake2-ppc>2013-07-06 07:26:04 +0200
commitf88d532734dbddecf81bc1d0ce51d30cb9fc9731 (patch)
treefc86b6b8a5883c6275c12d33927c4fe3bcb5add9
parent5d72f3f296b7815a4e8ec7b6b3e03bd7a4ed47ba (diff)
downloadrust-f88d532734dbddecf81bc1d0ce51d30cb9fc9731.tar.gz
rust-f88d532734dbddecf81bc1d0ce51d30cb9fc9731.zip
deque: Add tests for mut_iter and mut_rev_iter
-rw-r--r--src/libextra/deque.rs52
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];