public function testDifference() { $start = Timer::getMicroTime(); $diff = 0.04525; $epsilon = 0.0001; $end = $start + $diff; $this->assertInternalType('float', Timer::difference($start, $end)); $this->assertTrue(abs(Timer::difference($start, $end) - $diff) < $epsilon); // test precision foreach (array(0, 1, 2, 5, 8, 10, 20) as $precision) { $difference = Timer::difference($start, $end, $precision); $diffArray = explode('.', strval($difference)); if (count($diffArray) === 2) { $this->assertTrue(strlen(end($diffArray)) <= $precision, 'Failed asserting proper precision length for precision of ' . $precision . ' (' . $difference . ' given).'); } } }