<?php
namespace nur\b\date;

use nur\t\TestCase;

class HourTest extends TestCase {
  function test__toString() {
    self::assertSame("0h00", strval(new Hour(0)));
    self::assertSame("0h56", strval(new Hour(56)));
    self::assertSame("2h00", strval(new Hour(120)));
    self::assertSame("23h59", strval(new Hour(1439)));
    self::assertSame("24h00", strval(new Hour(1440)));
    self::assertSame("0h01", strval(new Hour(1441)));
  }

  function testFormat() {
    self::assertSame("0h00", (new Hour(0))->format());
    self::assertSame("0h56", (new Hour(56))->format());
    self::assertSame("2h00", (new Hour(120))->format());
    self::assertSame("23h59", (new Hour(1439))->format());
    self::assertSame("24h00", (new Hour(1440))->format());
    self::assertSame("0h01", (new Hour(1441))->format());
  }

  function testStep() {
    $h = new class extends Hour {
      const STEP = 5;
    };
    $h = $h->newu(10); self::assertSame("0h10", strval($h));
    $h = $h->newu(12); self::assertSame("0h10", strval($h));
    $h = $h->newu(15); self::assertSame("0h15", strval($h));
    $h = $h->newu(17); self::assertSame("0h15", strval($h));
  }
}
