pub struct MemoryPool {
max_size: usize,
}
impl MemoryPool {
#[must_use]
pub fn new(max_size: usize) -> Self {
Self { max_size }
}
#[must_use]
pub fn max_size(&self) -> usize {
self.max_size
}
}
impl Default for MemoryPool {
fn default() -> Self {
Self::new(64 * 1024 * 1024) }
}
#[cfg_attr(coverage_nightly, coverage(off))]
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_memory_pool_new() {
let pool = MemoryPool::new(1024);
assert_eq!(pool.max_size(), 1024);
}
#[test]
fn test_memory_pool_default() {
let pool = MemoryPool::default();
assert_eq!(pool.max_size(), 64 * 1024 * 1024); }
#[test]
fn test_memory_pool_zero_size() {
let pool = MemoryPool::new(0);
assert_eq!(pool.max_size(), 0);
}
#[test]
fn test_memory_pool_large_size() {
let pool = MemoryPool::new(usize::MAX);
assert_eq!(pool.max_size(), usize::MAX);
}
}
#[cfg_attr(coverage_nightly, coverage(off))]
#[cfg(test)]
mod property_tests {
use proptest::prelude::*;
proptest! {
#[test]
fn basic_property_stability(_input in ".*") {
prop_assert!(true);
}
#[test]
fn module_consistency_check(_x in 0u32..1000) {
prop_assert!(_x < 1001);
}
}
}