<?php
require 'DateFrame.php';
class TestDateFrame{
public function assertEquals($a, $b){
if($a == $b) return true;
die("$a NOT EQUALS $b");
}
public function assertNull($a){
if($a === null) return true;
die("$a NOT NULL");
}
/**
* @group date
*/
public function test_dateFrame() {
// w/o criteria
$dateframe = new DateFrame('2015-01-01', '3/31/2015');
$this->assertEquals('2015-01-01 00:00:00', $dateframe->start);
$this->assertEquals('2015-03-31 23:59:59', $dateframe->end);
$this->assertNull($dateframe->criteria);
$criteria = $dateframe->getCriteria('completeddate');
$by_day = $dateframe->asDayIntervals();
$this->assertEquals('2015-01-01 00:00:00', $by_day[0]->start);
$by_day = $dateframe->asDayIntervals();
$keys = array_keys($by_day);
$this->assertEquals('2015-03-31 23:59:59', $by_day[end($keys)]->end);
$by_7day = $dateframe->asSevenDayIntervals();
$this->assertEquals('2015-01-01 00:00:00', $by_7day[0]->start);
$this->assertEquals('2015-01-28 23:59:59', $by_7day[3]->end);
$keys = array_keys($by_7day);
$this->assertEquals('2015-03-31 23:59:59', $by_7day[end($keys)]->end);
$by_week = $dateframe->asWeekIntervals();
$this->assertEquals('2015-01-01 00:00:00', $by_week[0]->start);
$this->assertEquals('2015-01-04 00:00:00', $by_week[1]->start);
$this->assertEquals('2015-01-10 23:59:59', $by_week[1]->end);
$keys = array_keys($by_week);
$this->assertEquals('2015-03-31 23:59:59', $by_week[end($keys)]->end);
$by_month = $dateframe->asMonthIntervals();
$this->assertEquals('2015-01-31 23:59:59', $by_month[0]->end);
die("TEST PASSED!");
}
}
$T = new TestDateFrame;
$T->test_dateFrame();
|