Added some more test cases for into_iter.
This commit is contained in:
23
src/lib.rs
23
src/lib.rs
@@ -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());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user