use leaky_bucket::RateLimiter;
use tokio::time::{Duration, Instant};
#[tokio::test(flavor = "current_thread", start_paused = true)]
async fn test_numerical_limits() {
let limiter = RateLimiter::builder().refill(usize::MAX).initial(0).build();
let start = Instant::now();
limiter.acquire(usize::MAX).await;
limiter.acquire(isize::MAX as usize - 1).await;
assert_eq!(
Instant::now().duration_since(start),
Duration::from_millis(300)
);
limiter.acquire(1).await;
assert_eq!(
Instant::now().duration_since(start),
Duration::from_millis(400)
);
}