use super::Rb; use crate::{storage::Array, traits::*}; use alloc::vec::Vec; #[test] fn new_static() { let rb = Rb::>::default(); let (mut prod, mut cons) = rb.split(); assert_eq!(cons.occupied_len(), 0); assert_eq!(cons.capacity().get(), 2); assert_eq!(prod.try_push(1), Ok(())); assert_eq!(prod.try_push(2), Ok(())); assert_eq!(cons.try_pop(), Some(1)); assert_eq!(prod.try_push(3), Ok(())); assert_eq!(cons.try_pop(), Some(2)); assert_eq!(cons.try_pop(), Some(3)); assert_eq!(cons.try_pop(), None); } #[test] fn from_vec() { let mut vec = Vec::::with_capacity(4); vec.extend_from_slice(&[1, 2, 3]); let rb = Rb::from(vec); let (mut prod, mut cons) = rb.split(); assert_eq!(cons.occupied_len(), 3); assert_eq!(cons.capacity().get(), 4); assert_eq!(cons.try_pop(), Some(1)); assert_eq!(cons.try_pop(), Some(2)); assert_eq!(cons.try_pop(), Some(3)); assert_eq!(cons.try_pop(), None); assert_eq!(prod.try_push(4), Ok(())); assert_eq!(prod.try_push(5), Ok(())); assert_eq!(cons.try_pop(), Some(4)); assert_eq!(cons.try_pop(), Some(5)); assert_eq!(cons.try_pop(), None); }