use super::*;
#[test]
fn test_1() {
let mut ms = StackStructure::<u64, 5>::new();
ms.insert(0, 0);
ms.insert(1, 1);
println!("{:?}", ms.get(1));
ms.insert(1, 3);
println!("{:?}", ms.get(1));
println!("{:?}", ms.get(2));
*ms.get_mut(1).unwrap() += 1;
println!("len: {:?}", ms.len());
println!("ms: {:?}", ms);
for item in ms.iter() {
println!("item: {:?}", item);
}
for item in ms.iter_mut() {
*item += 1;
println!("item: {:?}", item);
}
for item in ms {
println!("item: {:?}", item);
}
let ms2 = StackStructure::<_, 2>::from_iter([
"hi",
"there",
]);
println!("{:?}", core::mem::size_of::<StackStructure::<[u8; 200], 100000>>());
let ss = StackStructure::<_, 5>::from_iter([
"c",
]);
let search_output = ss.binary_search(&"b");
println!("search_output: {:?}", search_output);
}
#[test]
fn test_iter() {
let numbers = StackStructure::<_, 6>::from_iter([1, 2, 3, 4, 5, 6]);
println!("numbers: {:?}", numbers);
let mut iter = numbers.iter();
assert_eq!(Some(&1), iter.next());
assert_eq!(Some(&2), iter.next());
assert_eq!(Some(&3), iter.next());
assert_eq!(Some(&4), iter.next());
assert_eq!(Some(&5), iter.next());
assert_eq!(Some(&6), iter.next());
assert_eq!(None, iter.next());
let mut iter = numbers.iter();
assert_eq!(Some(&1), iter.next());
assert_eq!(Some(&6), iter.next_back());
assert_eq!(Some(&5), iter.next_back());
assert_eq!(Some(&2), iter.next());
assert_eq!(Some(&3), iter.next());
assert_eq!(Some(&4), iter.next());
assert_eq!(None, iter.next());
assert_eq!(None, iter.next_back());
}
#[test]
fn test_chunk() {
let x = StackSimple::from_array_of_same_capacity([1,2,3,4,5]);
println!("chunk RangeFull: {:?}", &x[..]);
let mut iter = x.into_iter();
for _ in 0..3 {
let v = iter.next_back().unwrap();
println!("{:?}", v);
if v == 3 {
break;
}
}
for i in iter {
println!("{:?}", i);
}
}
#[test]
fn test_rchunks() {
let x = StackStructure::<_, 5>::from_iter([1,2,3,4,5]);
let rchunks = x.rchunks::<2>();
for chunk in rchunks {
println!("{:?}", &chunk[..]);
for item in &chunk[..1] {
println!("{:?}", item);
}
}
}
#[test]
fn test_map() {
let mut map = StackMap::<_, _, 40>::from_iter([
(0, "hi"),
(1, "tell"),
]);
map.insert(4, "three").unwrap();
map.insert(3, "three").unwrap();
map.insert(5, "three").unwrap();
map.insert(2, "two").unwrap();
for i in map.iter() {
println!("i: {:?}", i);
}
for i in 0..5 {
map.insert(i, "loop").unwrap();
}
for i in map.iter() {
println!("i: {:?}", i);
}
for i in map.values_mut() {
*i = "change";
}
for i in map.iter() {
println!("i: {:?}", i);
}
println!("map len: {:?}", map.len());
map.remove(&600);
for i in map.iter() {
println!("i: {:?}", i);
}
println!("map len: {:?}", map.len());
}
#[test]
fn test_simple() {
let mut x = StackSimple::from_array_of_same_capacity([1,2,5,6,8]);
for chunk in x.rchunks(3) {
println!("{:?}", chunk);
}
x[3] += 1;
let mut iter = x.rchunks(3);
for _ in 0..iter.len() {
println!("chunks left: {:?}", iter.len());
println!("{:?}", iter.next().unwrap());
}
}
#[test]
fn test_map_rchunks() {
let x = StackMap::<u64, u64, 10>::from_iter([
(0,0),
(1,1),
(2,2),
(3,3),
(4,4)
]);
for c in x.rchunks::<2>() {
println!("{:?}", &c[..]);
}
}