Skip to content

Commit cfbc47e

Browse files
authored
Merge pull request #19 from yamadashy/fix/exponential-strategy
Fix ExponentialStrategy calculation and update tests
2 parents 1758371 + 38c6f69 commit cfbc47e

File tree

2 files changed

+17
-11
lines changed

2 files changed

+17
-11
lines changed

src/Strategies/ExponentialStrategy.php

+1-4
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,6 @@ class ExponentialStrategy extends AbstractStrategy
1414
*/
1515
public function getWaitTime($attempt)
1616
{
17-
return (int) ($attempt == 1
18-
? $this->base
19-
: pow(2, $attempt) * $this->base
20-
);
17+
return (int) ($this->base * (pow(2, $attempt - 1)));
2118
}
2219
}

tests/Strategies/ExponentialStrategyTest.php

+16-7
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,21 @@ public function testWaitTimes()
1717
$s = new ExponentialStrategy(200);
1818

1919
$this->assertEquals(200, $s->getWaitTime(1));
20-
$this->assertEquals(800, $s->getWaitTime(2));
21-
$this->assertEquals(1600, $s->getWaitTime(3));
22-
$this->assertEquals(3200, $s->getWaitTime(4));
23-
$this->assertEquals(6400, $s->getWaitTime(5));
24-
$this->assertEquals(12800, $s->getWaitTime(6));
25-
$this->assertEquals(25600, $s->getWaitTime(7));
26-
$this->assertEquals(51200, $s->getWaitTime(8));
20+
$this->assertEquals(400, $s->getWaitTime(2));
21+
$this->assertEquals(800, $s->getWaitTime(3));
22+
$this->assertEquals(1600, $s->getWaitTime(4));
23+
$this->assertEquals(3200, $s->getWaitTime(5));
24+
$this->assertEquals(6400, $s->getWaitTime(6));
25+
$this->assertEquals(12800, $s->getWaitTime(7));
26+
$this->assertEquals(25600, $s->getWaitTime(8));
27+
}
28+
29+
public function testWaitTimesWithDefault()
30+
{
31+
$strategy = new ExponentialStrategy();
32+
$base = $strategy->getBase();
33+
$this->assertEquals((int) ($base * pow(2, 0)), $strategy->getWaitTime(1));
34+
$this->assertEquals((int) ($base * pow(2, 1)), $strategy->getWaitTime(2));
35+
$this->assertEquals((int) ($base * pow(2, 2)), $strategy->getWaitTime(3));
2736
}
2837
}

0 commit comments

Comments
 (0)