use simple_ringbuf::RingBuffer;
pub fn setup_full_buffer(size: usize) -> RingBuffer<usize> {
let mut buf = RingBuffer::new(size);
for i in 1..=size {
buf.push(i);
}
buf
}
pub fn setup_rotated_full_buffer(size: usize, rotation: usize) -> RingBuffer<usize> {
let mut buf = setup_full_buffer(size);
for i in 1..rotation {
buf.push(i * 10);
}
buf
}
pub fn setup_left_empty_buffer(size: usize, gap: usize) -> RingBuffer<usize> {
let mut buf = setup_full_buffer(size);
for _ in 0..gap {
buf.pop_oldest();
}
buf
}
pub fn setup_right_empty_buffer(size: usize, gap: usize) -> RingBuffer<usize> {
let mut buf = RingBuffer::new(size);
for i in 1..=(size - gap) {
buf.push(i);
}
buf
}
pub fn setup_island_buffer(size: usize, left_gap: usize, right_gap: usize) -> RingBuffer<usize> {
let mut buf = setup_full_buffer(size);
for _ in 0..left_gap {
buf.pop_oldest();
}
for _ in 0..right_gap {
buf.pop();
}
buf
}
pub fn setup_rotated_island_buffer(
size: usize,
rotation: usize,
left_shrink: usize,
right_shrink: usize,
) -> RingBuffer<usize> {
let mut buf = setup_rotated_full_buffer(size, rotation);
for _ in 0..left_shrink {
buf.pop_oldest();
}
for _ in 0..right_shrink {
buf.pop();
}
buf
}