61 lines
2.1 KiB
PHP
61 lines
2.1 KiB
PHP
<?php
|
|
namespace nulib\php\time;
|
|
|
|
use nulib\tests\TestCase;
|
|
use nulib\ValueException;
|
|
|
|
class HourTest extends TestCase {
|
|
function testParse() {
|
|
self::assertSame("8h", strval(new Hour("08:00:00")));
|
|
self::assertSame("8h", strval(new Hour("8:0")));
|
|
self::assertSame("8h", strval(new Hour("8.0")));
|
|
self::assertSame("8h", strval(new Hour("8h")));
|
|
|
|
self::assertSame("8h15", strval(new Hour("08:15:00")));
|
|
self::assertSame("8h15", strval(new Hour("8:15")));
|
|
self::assertSame("8h15", strval(new Hour("8.15")));
|
|
self::assertSame("8h15", strval(new Hour("8h15")));
|
|
|
|
self::assertSame("8h15", strval(new Hour("08:15:23")));
|
|
self::assertSame("8h15", strval(new Hour("8:15.23")));
|
|
self::assertSame("8h15", strval(new Hour("8.15.23")));
|
|
self::assertSame("8h15", strval(new Hour("8h15.23")));
|
|
|
|
self::assertSame("31h11", strval(new Hour("30:70:80", [
|
|
"wrap" => false,
|
|
])));
|
|
self::assertSame("7h11", strval(new Hour("30:70:80")));
|
|
|
|
self::assertException(ValueException::class, function() {
|
|
return strval(new Hour("bad format"));
|
|
});
|
|
}
|
|
|
|
function testFormat() {
|
|
self::assertSame("0h", (new Hour(0))->format());
|
|
self::assertSame("0h56", (new Hour(56))->format());
|
|
self::assertSame("2h", (new Hour(120))->format());
|
|
self::assertSame("23h59", (new Hour(1439))->format());
|
|
self::assertSame("24h", (new Hour(1440))->format());
|
|
self::assertSame("0h01", (new Hour(1441))->format());
|
|
}
|
|
|
|
function testStep() {
|
|
$h = new Hour(null, [
|
|
"step" => 5,
|
|
]);
|
|
$h->setu(10); self::assertSame("0h10", strval($h));
|
|
$h->setu(12); self::assertSame("0h10", strval($h));
|
|
$h->setu(15); self::assertSame("0h15", strval($h));
|
|
$h->setu(17); self::assertSame("0h15", strval($h));
|
|
|
|
$h->set("8h");
|
|
$h->addu(); self::assertSame("8h05", strval($h));
|
|
$h->addu(); self::assertSame("8h10", strval($h));
|
|
$h->addu(); self::assertSame("8h15", strval($h));
|
|
$h->subu(); self::assertSame("8h10", strval($h));
|
|
$h->subu(); self::assertSame("8h05", strval($h));
|
|
$h->subu(); self::assertSame("8h", strval($h));
|
|
}
|
|
}
|