bat-8.x-1.x-dev/modules/bat_roomify/tests/EventIntervalTest.php

modules/bat_roomify/tests/EventIntervalTest.php
<?php

namespace Drupal\bat_roomify\Test;

use PHPUnit\Framework\TestCase;

use Drupal\bat_roomify\Event\EventInterval;

class EventIntervalTest extends TestCase {

	public function testDivide1() {
		$start_date = new \DateTime('2016-01-01 00:00');
		$end_date = new \DateTime('2016-01-01 23:59');

		$duration = new \DateInterval('P1D');
		$percentage = EventInterval::divide($start_date, $end_date, $duration);
		$this->assertEquals(round($percentage, 2), 1);

		$duration = new \DateInterval('PT3H');
		$percentage = EventInterval::divide($start_date, $end_date, $duration);
		$this->assertEquals(round($percentage, 2), 8);

		$duration = new \DateInterval('PT2H');
		$percentage = EventInterval::divide($start_date, $end_date, $duration);
		$this->assertEquals(round($percentage, 2), 12);

		$duration = new \DateInterval('PT1H');
		$percentage = EventInterval::divide($start_date, $end_date, $duration);
		$this->assertEquals(round($percentage, 2), 24);

		$duration = new \DateInterval('PT30M');
		$percentage = EventInterval::divide($start_date, $end_date, $duration);
		$this->assertEquals(round($percentage, 2), 48);

		$duration = new \DateInterval('PT15M');
		$percentage = EventInterval::divide($start_date, $end_date, $duration);
		$this->assertEquals(round($percentage, 2), 96);

		$duration = new \DateInterval('PT10M');
		$percentage = EventInterval::divide($start_date, $end_date, $duration);
		$this->assertEquals(round($percentage, 2), 144);

		$duration = new \DateInterval('PT5M');
		$percentage = EventInterval::divide($start_date, $end_date, $duration);
		$this->assertEquals(round($percentage, 2), 288);
	}

	public function testDivide2() {
		$start_date = new \DateTime('2016-02-11 12:00');
		$end_date = new \DateTime('2016-02-11 21:59');

		$duration = new \DateInterval('P1D');
		$percentage = EventInterval::divide($start_date, $end_date, $duration);
		$this->assertEquals(round($percentage, 2), 0.42);

		$duration = new \DateInterval('PT3H');
		$percentage = EventInterval::divide($start_date, $end_date, $duration);
		$this->assertEquals(round($percentage, 2), 3.33);

		$duration = new \DateInterval('PT2H');
		$percentage = EventInterval::divide($start_date, $end_date, $duration);
		$this->assertEquals(round($percentage, 2), 5);

		$duration = new \DateInterval('PT1H');
		$percentage = EventInterval::divide($start_date, $end_date, $duration);
		$this->assertEquals(round($percentage, 2), 10);

		$duration = new \DateInterval('PT30M');
		$percentage = EventInterval::divide($start_date, $end_date, $duration);
		$this->assertEquals(round($percentage, 2), 20);

		$duration = new \DateInterval('PT15M');
		$percentage = EventInterval::divide($start_date, $end_date, $duration);
		$this->assertEquals(round($percentage, 2), 40);

		$duration = new \DateInterval('PT10M');
		$percentage = EventInterval::divide($start_date, $end_date, $duration);
		$this->assertEquals(round($percentage, 2), 60);

		$duration = new \DateInterval('PT5M');
		$percentage = EventInterval::divide($start_date, $end_date, $duration);
		$this->assertEquals(round($percentage, 2), 120);
	}

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc