public async Task RateLimitBurstTwice()
        {
            const int count    = 25;
            var       duration = TimeSpan.FromSeconds(3);

            const int burstCount    = 10;
            var       burstDuration = TimeSpan.FromSeconds(1);

            var rateLimiter = new ApiRateLimiter();

            rateLimiter.Configure(duration, count);
            rateLimiter.Configure(burstDuration, burstCount);

            var stopwatch = Stopwatch.StartNew();

            for (var i = 0; i < burstCount * 2 + 1; i++)
            {
                await rateLimiter.DelayAsync();
            }

            stopwatch.Stop();

            Assert.True(stopwatch.ElapsedMilliseconds >= (burstDuration.TotalMilliseconds - 45) * 2 + 15);
            Assert.False(stopwatch.ElapsedMilliseconds > (burstDuration.TotalMilliseconds + 45) * 2 + 15);
        }