Skip to content

Commit 5545746

Browse files
committed
Turbopack: Add ChunkedVec test case
1 parent c23c2d8 commit 5545746

File tree

1 file changed

+26
-1
lines changed

1 file changed

+26
-1
lines changed

turbopack/crates/turbo-tasks-backend/src/utils/chunked_vec.rs

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ impl<T> ChunkedVec<T> {
4141
}
4242
}
4343

44-
pub fn iter(&self) -> impl Iterator<Item = &T> {
44+
pub fn iter(&self) -> impl ExactSizeIterator<Item = &T> {
4545
ExactSizeIter {
4646
iter: self.chunks.iter().flat_map(|chunk| chunk.iter()),
4747
len: self.len(),
@@ -104,3 +104,28 @@ impl<I: Iterator> ExactSizeIterator for ExactSizeIter<I> {
104104
self.len
105105
}
106106
}
107+
108+
#[cfg(test)]
109+
mod tests {
110+
use super::ChunkedVec;
111+
112+
#[test]
113+
fn test_chunked_vec() {
114+
for i in 0..1000 {
115+
let mut vec = ChunkedVec::new();
116+
for j in 0..i {
117+
vec.push(j);
118+
}
119+
assert_eq!(vec.len(), i);
120+
assert_eq!(
121+
vec.iter().copied().collect::<Vec<_>>(),
122+
(0..i).collect::<Vec<_>>()
123+
);
124+
assert_eq!(vec.iter().len(), i);
125+
assert_eq!(vec.is_empty(), i == 0);
126+
let iter = vec.into_iter();
127+
assert_eq!(iter.len(), i);
128+
assert_eq!(iter.collect::<Vec<_>>(), (0..i).collect::<Vec<_>>());
129+
}
130+
}
131+
}

0 commit comments

Comments
 (0)