Added some more test cases for into_iter.

This commit is contained in:
2018-01-05 20:57:22 +01:00
parent 1de9a0904d
commit 60ccc7cce1

View File

@@ -1,7 +1,7 @@
extern crate unreachable;
use std::ops;
use std::iter::{Iterator, IntoIterator, FromIterator};
use std::iter::{FromIterator, IntoIterator, Iterator};
use std::default::Default;
use std::collections::HashMap;
@@ -134,11 +134,15 @@ impl BitSet {
}
pub fn iter(&self) -> Iter {
Iter { iter: self.blocks.iter(), block: 0, bits: 0, bit: BITS }
Iter {
iter: self.blocks.iter(),
block: 0,
bits: 0,
bit: BITS,
}
}
}
pub struct Iter<'a> {
iter: std::collections::hash_map::Iter<'a, u64, u64>,
block: u64,
@@ -227,7 +231,12 @@ impl IntoIterator for BitSet {
type IntoIter = IntoIter;
fn into_iter(self) -> IntoIter {
IntoIter { iter: self.blocks.into_iter(), block: 0, bits: 0, bit: BITS }
IntoIter {
iter: self.blocks.into_iter(),
block: 0,
bits: 0,
bit: BITS,
}
}
}
@@ -396,12 +405,16 @@ mod tests {
#[test]
fn into_iter() {
let set = [1, 2, 3].iter().cloned().collect::<BitSet>();
let set = [1, 2, 3, 65, 66, 129, 130].iter().cloned().collect::<BitSet>();
let mut iter = set.into_iter();
assert_eq!(Some(1), iter.next());
assert_eq!(Some(2), iter.next());
assert_eq!(Some(3), iter.next());
assert_eq!(Some(65), iter.next());
assert_eq!(Some(66), iter.next());
assert_eq!(Some(129), iter.next());
assert_eq!(Some(130), iter.next());
assert_eq!(None, iter.next());
assert_eq!(None, iter.next());
}