Skip to content

Commit a5adf76

Browse files
Add Iterator tests for stack
1 parent f566421 commit a5adf76

1 file changed

Lines changed: 41 additions & 0 deletions

File tree

crates/graph-collections/tests/stack.rs

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,3 +239,44 @@ fn works_with_option_type() {
239239
assert_eq!(s.pop(), Some(None));
240240
assert_eq!(s.pop(), Some(Some(1)));
241241
}
242+
243+
// ── Iterator ─────────────────────────────────────────────────────────────────
244+
245+
#[test]
246+
fn into_iter_lifo_order() {
247+
let s = Stack::from(vec![1, 2, 3]);
248+
let result: Vec<i32> = s.into_iter().collect();
249+
assert_eq!(result, vec![3, 2, 1]);
250+
}
251+
252+
#[test]
253+
fn into_iter_exact_size() {
254+
let s = Stack::from(vec![1, 2, 3]);
255+
let mut iter = s.into_iter();
256+
assert_eq!(iter.len(), 3);
257+
iter.next();
258+
assert_eq!(iter.len(), 2);
259+
}
260+
261+
#[test]
262+
fn for_loop_lifo_order() {
263+
let s = Stack::from(vec![1, 2, 3]);
264+
let mut out = Vec::new();
265+
for x in s {
266+
out.push(x);
267+
}
268+
assert_eq!(out, vec![3, 2, 1]);
269+
}
270+
271+
#[test]
272+
fn collect_into_stack() {
273+
let s: Stack<i32> = (1..=3).collect();
274+
assert_eq!(s.len(), 3);
275+
}
276+
277+
#[test]
278+
fn into_iter_empty() {
279+
let s: Stack<i32> = Stack::new();
280+
let result: Vec<i32> = s.into_iter().collect();
281+
assert!(result.is_empty());
282+
}

0 commit comments

Comments
 (0)