### Question:
ExponentialTaskExecutionBackOff implements TaskExecutionBackOff { protected long getDelay(int failureCount) { long maxDelay = (long) (Math.pow(getMultiplier(), failureCount) * getInitialInterval()); if (maxDelay == Long.MAX_VALUE) { return STOP; } return Math.min(maxDelay, getMaxInterval()); } ExponentialTaskExecutionBackOff();  ExponentialTaskExecutionBackOff(
      long initialInterval, long maxInterval, double multiplier, int maxRetries); long getInitialInterval(); void setInitialInterval(long initialInterval); int getMaxRetries(); void setMaxRetries(int maxRetries); double getMultiplier(); void setMultiplier(double multiplier); long getMaxInterval(); void setMaxInterval(long maxInterval); @Override long nextBackOff(Object object, RqueueMessage rqueueMessage, int failureCount); static final long DEFAULT_INITIAL_INTERVAL; static final double DEFAULT_MULTIPLIER; static final long DEFAULT_MAX_INTERVAL; }### Answer:
@Test public void construct() { ExponentialTaskExecutionBackOff e = new ExponentialTaskExecutionBackOff(1000L, 3000000L, 1.5, 3); assertEquals((long) (Math.pow(1.5, 3) * 1000L), e.getDelay(3)); }