Skip to content

Commit ae42ad7

Browse files
authored
Merge pull request #86 from izderadicka/vector-tests
Test and fix to vec-final
2 parents 80ccb19 + cce3265 commit ae42ad7

File tree

1 file changed

+74
-2
lines changed

1 file changed

+74
-2
lines changed

src/vec-final.md

Lines changed: 74 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,7 @@ pub struct Drain<'a, T: 'a> {
289289

290290
impl<'a, T> Iterator for Drain<'a, T> {
291291
type Item = T;
292-
fn next(&mut self) -> Option<T> { self.iter.next_back() }
292+
fn next(&mut self) -> Option<T> { self.iter.next() }
293293
fn size_hint(&self) -> (usize, Option<usize>) { self.iter.size_hint() }
294294
}
295295

@@ -304,5 +304,77 @@ impl<'a, T> Drop for Drain<'a, T> {
304304
}
305305
}
306306

307-
# fn main() {}
307+
# fn main() {
308+
# tests::create_push_pop();
309+
# tests::iter_test();
310+
# tests::test_drain();
311+
# tests::test_zst();
312+
# println!("All tests finished OK");
313+
# }
314+
315+
# mod tests {
316+
# use super::*;
317+
# pub fn create_push_pop() {
318+
# let mut v = Vec::new();
319+
# v.push(1);
320+
# assert_eq!(1, v.len());
321+
# assert_eq!(1, v[0]);
322+
# for i in v.iter_mut() {
323+
# *i += 1;
324+
# }
325+
# v.insert(0, 5);
326+
# let x = v.pop();
327+
# assert_eq!(Some(2), x);
328+
# assert_eq!(1, v.len());
329+
# v.push(10);
330+
# let x = v.remove(0);
331+
# assert_eq!(5, x);
332+
# assert_eq!(1, v.len());
333+
# }
334+
#
335+
# pub fn iter_test() {
336+
# let mut v = Vec::new();
337+
# for i in 0..10 {
338+
# v.push(Box::new(i))
339+
# }
340+
# let mut iter = v.into_iter();
341+
# let first = iter.next().unwrap();
342+
# let last = iter.next_back().unwrap();
343+
# drop(iter);
344+
# assert_eq!(0, *first);
345+
# assert_eq!(9, *last);
346+
# }
347+
#
348+
# pub fn test_drain() {
349+
# let mut v = Vec::new();
350+
# for i in 0..10 {
351+
# v.push(Box::new(i))
352+
# }
353+
# {
354+
# let mut drain = v.drain();
355+
# let first = drain.next().unwrap();
356+
# let last = drain.next_back().unwrap();
357+
# assert_eq!(0, *first);
358+
# assert_eq!(9, *last);
359+
# }
360+
# assert_eq!(0, v.len());
361+
# v.push(Box::new(1));
362+
# assert_eq!(1, *v.pop().unwrap());
363+
# }
364+
#
365+
# pub fn test_zst() {
366+
# let mut v = Vec::new();
367+
# for _i in 0..10 {
368+
# v.push(())
369+
# }
370+
#
371+
# let mut count = 0;
372+
#
373+
# for _ in v.into_iter() {
374+
# count += 1
375+
# }
376+
#
377+
# assert_eq!(10, count);
378+
# }
379+
# }
308380
```

0 commit comments

Comments
 (0)