use wow_mpq::{BufferPool, BufferSize};
#[test]
fn test_buffer_pool_creation() {
let pool = BufferPool::new();
let stats = pool.statistics();
assert_eq!(stats.hit_rate(), 0.0);
}
#[test]
fn test_buffer_pool_basic_operations() {
let pool = BufferPool::new();
let mut buffer = pool.get_buffer(BufferSize::Medium);
buffer.extend_from_slice(&[1, 2, 3, 4, 5]);
assert_eq!(buffer.len(), 5);
drop(buffer);
let buffer2 = pool.get_buffer(BufferSize::Medium);
assert_eq!(buffer2.len(), 0);
let stats = pool.statistics();
assert_eq!(stats.hit_rate(), 0.5); }
#[test]
fn test_buffer_size_categories() {
assert_eq!(BufferSize::for_capacity(1000), BufferSize::Small);
assert_eq!(BufferSize::for_capacity(50000), BufferSize::Medium);
assert_eq!(BufferSize::for_capacity(500000), BufferSize::Large);
}
#[test]
fn test_buffer_pool_statistics() {
let pool = BufferPool::new();
let stats = pool.statistics();
assert_eq!(stats.hit_rate(), 0.0);
{
let _buf1 = pool.get_buffer(BufferSize::Small);
let _buf2 = pool.get_buffer(BufferSize::Small);
}
assert!(
stats.hits.load(std::sync::atomic::Ordering::Relaxed) > 0
|| stats.misses.load(std::sync::atomic::Ordering::Relaxed) > 0
);
}