public function testElapsedStepsWithPause() { $this->stopWatch->start(); usleep(2500); $this->stopWatch->pause(); usleep(32000); $this->stopWatch->step('step1'); usleep(32000); $this->stopWatch->resume(); usleep(4000); $this->stopWatch->pause(); usleep(32000); $this->stopWatch->resume(); usleep(4000); $this->stopWatch->step('step2'); usleep(8000); $this->stopWatch->pause(); usleep(32000); $this->stopWatch->step('step3'); usleep(32000); $this->stopWatch->stop(); $elapsedSteps = $this->stopWatch->getElapsedStepsMilliseconds(); $this->assertCount(3, $elapsedSteps); $this->assertArrayHasKey('step1', $elapsedSteps); $this->assertArrayHasKey('step2', $elapsedSteps); $this->assertArrayHasKey('step3', $elapsedSteps); $this->assertGreaterThanOrEqual(2, $elapsedSteps['step1']); $this->assertLessThan(10, $elapsedSteps['step1']); $this->assertGreaterThanOrEqual(10, $elapsedSteps['step2']); $this->assertLessThan(18, $elapsedSteps['step2']); $this->assertGreaterThanOrEqual(18, $elapsedSteps['step3']); $this->assertLessThan(26, $elapsedSteps['step3']); }