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;
|
extern crate unreachable;
|
||||||
|
|
||||||
use std::ops;
|
use std::ops;
|
||||||
use std::iter::{Iterator, IntoIterator, FromIterator};
|
use std::iter::{FromIterator, IntoIterator, Iterator};
|
||||||
use std::default::Default;
|
use std::default::Default;
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
@@ -134,11 +134,15 @@ impl BitSet {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn iter(&self) -> Iter {
|
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> {
|
pub struct Iter<'a> {
|
||||||
iter: std::collections::hash_map::Iter<'a, u64, u64>,
|
iter: std::collections::hash_map::Iter<'a, u64, u64>,
|
||||||
block: u64,
|
block: u64,
|
||||||
@@ -227,7 +231,12 @@ impl IntoIterator for BitSet {
|
|||||||
type IntoIter = IntoIter;
|
type IntoIter = IntoIter;
|
||||||
|
|
||||||
fn into_iter(self) -> 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]
|
#[test]
|
||||||
fn into_iter() {
|
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();
|
let mut iter = set.into_iter();
|
||||||
|
|
||||||
assert_eq!(Some(1), iter.next());
|
assert_eq!(Some(1), iter.next());
|
||||||
assert_eq!(Some(2), iter.next());
|
assert_eq!(Some(2), iter.next());
|
||||||
assert_eq!(Some(3), 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());
|
||||||
assert_eq!(None, iter.next());
|
assert_eq!(None, iter.next());
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user