123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- <?php declare(strict_types=1);
- /*
- * This file is part of phpunit/php-timer.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- namespace SebastianBergmann\Timer;
- use PHPUnit\Framework\TestCase;
- /**
- * @covers \SebastianBergmann\Timer\Timer
- */
- final class TimerTest extends TestCase
- {
- public function testCanBeStartedAndStopped(): void
- {
- $this->assertIsFloat(Timer::stop());
- }
- public function testCanFormatTimeSinceStartOfRequest(): void
- {
- $this->assertStringMatchesFormat('%f %s', Timer::timeSinceStartOfRequest());
- }
- /**
- * @backupGlobals enabled
- */
- public function testCanFormatSinceStartOfRequestWhenRequestTimeIsNotAvailableAsFloat(): void
- {
- if (isset($_SERVER['REQUEST_TIME_FLOAT'])) {
- unset($_SERVER['REQUEST_TIME_FLOAT']);
- }
- $this->assertStringMatchesFormat('%f %s', Timer::timeSinceStartOfRequest());
- }
- /**
- * @backupGlobals enabled
- */
- public function testCannotFormatTimeSinceStartOfRequestWhenRequestTimeIsNotAvailable(): void
- {
- if (isset($_SERVER['REQUEST_TIME_FLOAT'])) {
- unset($_SERVER['REQUEST_TIME_FLOAT']);
- }
- if (isset($_SERVER['REQUEST_TIME'])) {
- unset($_SERVER['REQUEST_TIME']);
- }
- $this->expectException(RuntimeException::class);
- Timer::timeSinceStartOfRequest();
- }
- public function testCanFormatResourceUsage(): void
- {
- $this->assertStringMatchesFormat('Time: %s, Memory: %f %s', Timer::resourceUsage());
- }
- /**
- * @dataProvider secondsProvider
- */
- public function testCanFormatSecondsAsString(string $string, float $seconds): void
- {
- $this->assertEquals($string, Timer::secondsToTimeString($seconds));
- }
- public function secondsProvider(): array
- {
- return [
- ['0 ms', 0],
- ['1 ms', .001],
- ['10 ms', .01],
- ['100 ms', .1],
- ['999 ms', .999],
- ['1 second', .9999],
- ['1 second', 1],
- ['2 seconds', 2],
- ['59.9 seconds', 59.9],
- ['59.99 seconds', 59.99],
- ['59.99 seconds', 59.999],
- ['1 minute', 59.9999],
- ['59 seconds', 59.001],
- ['59.01 seconds', 59.01],
- ['1 minute', 60],
- ['1.01 minutes', 61],
- ['2 minutes', 120],
- ['2.01 minutes', 121],
- ['59.99 minutes', 3599.9],
- ['59.99 minutes', 3599.99],
- ['59.99 minutes', 3599.999],
- ['1 hour', 3599.9999],
- ['59.98 minutes', 3599.001],
- ['59.98 minutes', 3599.01],
- ['1 hour', 3600],
- ['1 hour', 3601],
- ['1 hour', 3601.9],
- ['1 hour', 3601.99],
- ['1 hour', 3601.999],
- ['1 hour', 3601.9999],
- ['1.01 hours', 3659.9999],
- ['1.01 hours', 3659.001],
- ['1.01 hours', 3659.01],
- ['2 hours', 7199.9999],
- ];
- }
- /**
- * @dataProvider bytesProvider
- */
- public function testCanFormatBytesAsString(string $string, float $bytes): void
- {
- $this->assertEquals($string, Timer::bytesToString($bytes));
- }
- public function bytesProvider(): array
- {
- return [
- ['0 bytes', 0],
- ['1 byte', 1],
- ['1023 bytes', 1023],
- ['1.00 KB', 1024],
- ['1.50 KB', 1.5 * 1024],
- ['2.00 MB', 2 * 1048576],
- ['2.50 MB', 2.5 * 1048576],
- ['3.00 GB', 3 * 1073741824],
- ['3.50 GB', 3.5 * 1073741824],
- ];
- }
- }
|