Skip to content

Commit

Permalink
Iter tests
Browse files Browse the repository at this point in the history
  • Loading branch information
agerasev committed Apr 10, 2023
1 parent d712716 commit 383f5b1
Show file tree
Hide file tree
Showing 3 changed files with 79 additions and 78 deletions.
78 changes: 0 additions & 78 deletions old/tests/iter.rs

This file was deleted.

78 changes: 78 additions & 0 deletions src/tests/iter.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
use crate::{storage::Static, traits::*, LocalRb};

#[test]
fn iter() {
let buf = LocalRb::<Static<i32, 2>>::default();
let (mut prod, mut cons) = buf.split();

prod.try_push(10).unwrap();
prod.try_push(20).unwrap();

let sum: i32 = cons.iter().sum();

let first = cons.try_pop().expect("First item is not available");
let second = cons.try_pop().expect("Second item is not available");

assert_eq!(sum, first + second);
}

#[test]
fn iter_mut() {
let buf = LocalRb::<Static<i32, 2>>::default();
let (mut prod, mut cons) = buf.split();

prod.try_push(10).unwrap();
prod.try_push(20).unwrap();

for v in cons.iter_mut() {
*v *= 2;
}

let sum: i32 = cons.iter().sum();

let first = cons.try_pop().expect("First item is not available");
let second = cons.try_pop().expect("Second item is not available");

assert_eq!(sum, first + second);
}

#[test]
fn pop_iter() {
let buf = LocalRb::<Static<i32, 3>>::default();
let (mut prod, mut cons) = buf.split();

prod.try_push(0).unwrap();
prod.try_push(1).unwrap();
for (i, v) in cons.pop_iter().enumerate() {
assert_eq!(i as i32, v);
}

prod.try_push(2).unwrap();
prod.try_push(3).unwrap();
for (i, v) in cons.pop_iter().enumerate() {
assert_eq!(i as i32 + 2, v);
}
assert!(prod.is_empty());
}

#[test]
fn push_pop_iter_partial() {
let buf = LocalRb::<Static<i32, 4>>::default();
let (mut prod, mut cons) = buf.split();

prod.try_push(0).unwrap();
prod.try_push(1).unwrap();
prod.try_push(2).unwrap();
for (i, v) in (0..2).zip(cons.pop_iter()) {
assert_eq!(i, v);
}

prod.try_push(3).unwrap();
prod.try_push(4).unwrap();
prod.try_push(5).unwrap();
for (i, v) in (2..5).zip(cons.pop_iter()) {
assert_eq!(i, v);
}
assert_eq!(cons.try_pop().unwrap(), 5);
assert!(prod.is_empty());
}
1 change: 1 addition & 0 deletions src/tests/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ mod basic;
#[cfg(feature = "alloc")]
mod drop;
mod fmt_write;
mod iter;
mod overwrite;
#[cfg(feature = "std")]
mod read_write;
Expand Down

0 comments on commit 383f5b1

Please sign in to comment.