Skip to content

Commit f6f1949

Browse files
committed
Add more tests
1 parent df3530b commit f6f1949

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

src/lib.rs

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -977,4 +977,43 @@ mod tests {
977977

978978
assert_eq!(nums, [1, 2, 3, 4, 5, 6]);
979979
}
980+
981+
#[test]
982+
fn replace_with() {
983+
let mut vec = (1..=5).map(Box::new).collect();
984+
let mut scan = VecGrowScan::new(&mut vec);
985+
986+
while let Some(value) = scan.next() {
987+
if **value % 2 == 0 {
988+
value.replace_with(|x| Box::new(*x * 2));
989+
}
990+
}
991+
992+
drop(scan);
993+
994+
assert_eq!(
995+
vec,
996+
[
997+
Box::new(1),
998+
Box::new(4),
999+
Box::new(3),
1000+
Box::new(8),
1001+
Box::new(5),
1002+
]
1003+
);
1004+
}
1005+
1006+
#[test]
1007+
fn replace_with_many_with() {
1008+
let mut vec = vec![3, 6, 9, 12];
1009+
let mut scan = VecGrowScan::new(&mut vec);
1010+
1011+
while let Some(value) = scan.next() {
1012+
value.replace_with_many_with(|x| vec![x - 1, x, x + 1]);
1013+
}
1014+
1015+
drop(scan);
1016+
1017+
assert_eq!(vec, [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]);
1018+
}
9801019
}

0 commit comments

Comments
 (0)