boolean retry = policy.allowRetry(retryCount, elapsedTimeNanos, sleeper); if (retryCount < maxRetries) { assertTrue(retry); assertEquals(retryCount + 1, sleeper.count); } else { assertEquals(maxRetries, sleeper.count); assertTrue(sleeper.time >= baseSleepTimeNanos); assertTrue(policy.allowRetry(0, elapsedTimeNanos, sleeper)); assertEquals(1, sleeper.count); assertEquals(0, sleeper.time); assertTrue(policy.allowRetry(0, 0, sleeper)); assertTrue(policy.allowRetry(0, elapsedTimeNanos, sleeper)); assertEquals(1, sleeper.count); assertEquals(Long.MAX_VALUE, sleeper.time);