public function testElapsedStepsWorks() { $this->stopWatch->start(); usleep(2500); $this->stopWatch->step('step1'); usleep(8000); $this->stopWatch->step('step2'); usleep(32000); $this->stopWatch->stop(); $elapsedSteps = $this->stopWatch->getElapsedStepsMilliseconds(); $this->assertCount(2, $elapsedSteps); $this->assertArrayHasKey('step1', $elapsedSteps); $this->assertArrayHasKey('step2', $elapsedSteps); $this->assertGreaterThanOrEqual(2, $elapsedSteps['step1']); $this->assertLessThan(10, $elapsedSteps['step1']); $this->assertGreaterThanOrEqual(10, $elapsedSteps['step2']); $this->assertLessThan(18, $elapsedSteps['step2']); $elapsedStepsSeconds = $this->stopWatch->getElapsedStepsSeconds(); $this->assertGreaterThanOrEqual(0.002, $elapsedStepsSeconds['step1']); $this->assertLessThan(0.01, $elapsedStepsSeconds['step1']); $elapsedStepsMicroseconds = $this->stopWatch->getElapsedStepsMicroseconds(); $this->assertGreaterThanOrEqual(2000, $elapsedStepsMicroseconds['step1']); $this->assertLessThan(10000, $elapsedStepsMicroseconds['step1']); }