Skip to content

Commit f88d532

Browse files
author
blake2-ppc
committed
deque: Add tests for mut_iter and mut_rev_iter
1 parent 5d72f3f commit f88d532

File tree

1 file changed

+51
-1
lines changed

1 file changed

+51
-1
lines changed

src/libextra/deque.rs

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ mod tests {
273273
use super::*;
274274
use std::cmp::Eq;
275275
use std::kinds::Copy;
276-
use std::int;
276+
use std::{int, uint};
277277
use extra::test;
278278

279279
#[test]
@@ -536,6 +536,8 @@ mod tests {
536536
#[test]
537537
fn test_iter() {
538538
let mut d = Deque::new();
539+
assert_eq!(d.iter().next(), None);
540+
539541
for int::range(0,5) |i| {
540542
d.add_back(i);
541543
}
@@ -550,6 +552,8 @@ mod tests {
550552
#[test]
551553
fn test_rev_iter() {
552554
let mut d = Deque::new();
555+
assert_eq!(d.rev_iter().next(), None);
556+
553557
for int::range(0,5) |i| {
554558
d.add_back(i);
555559
}
@@ -561,6 +565,52 @@ mod tests {
561565
assert_eq!(d.rev_iter().collect::<~[&int]>(), ~[&4,&3,&2,&1,&0,&6,&7,&8]);
562566
}
563567

568+
#[test]
569+
fn test_mut_iter() {
570+
let mut d = Deque::new();
571+
assert!(d.mut_iter().next().is_none());
572+
573+
for uint::range(0,3) |i| {
574+
d.add_front(i);
575+
}
576+
577+
for d.mut_iter().enumerate().advance |(i, elt)| {
578+
assert_eq!(*elt, 2 - i);
579+
*elt = i;
580+
}
581+
582+
{
583+
let mut it = d.mut_iter();
584+
assert_eq!(*it.next().unwrap(), 0);
585+
assert_eq!(*it.next().unwrap(), 1);
586+
assert_eq!(*it.next().unwrap(), 2);
587+
assert!(it.next().is_none());
588+
}
589+
}
590+
591+
#[test]
592+
fn test_mut_rev_iter() {
593+
let mut d = Deque::new();
594+
assert!(d.mut_rev_iter().next().is_none());
595+
596+
for uint::range(0,3) |i| {
597+
d.add_front(i);
598+
}
599+
600+
for d.mut_rev_iter().enumerate().advance |(i, elt)| {
601+
assert_eq!(*elt, i);
602+
*elt = i;
603+
}
604+
605+
{
606+
let mut it = d.mut_rev_iter();
607+
assert_eq!(*it.next().unwrap(), 0);
608+
assert_eq!(*it.next().unwrap(), 1);
609+
assert_eq!(*it.next().unwrap(), 2);
610+
assert!(it.next().is_none());
611+
}
612+
}
613+
564614
#[test]
565615
fn test_from_iterator() {
566616
use std::iterator;

0 commit comments

Comments
 (0)