예제 #1
0
 public function testFindDaysInRangeOverlap()
 {
     $base = new w2p_Utilities_Date();
     $Jan_01_2010 = new w2p_Utilities_Date('2010-01-01');
     $Jan_15_2010 = new w2p_Utilities_Date('2010-01-15');
     $Jan_01_2011 = new w2p_Utilities_Date('2011-01-01');
     $Jan_15_2011 = new w2p_Utilities_Date('2011-01-15');
     $Jan_31_2011 = new w2p_Utilities_Date('2011-01-31');
     $Feb_15_2011 = new w2p_Utilities_Date('2011-02-15');
     $Jan_16_2012 = new w2p_Utilities_Date('2012-01-16');
     $Jan_31_2012 = new w2p_Utilities_Date('2012-01-31');
     // No overlap, Range B after Range A
     $this->assertEquals(0, $base->findDaysInRangeOverlap($Jan_01_2011, $Jan_15_2011, $Jan_16_2012, $Jan_31_2012));
     // No overlap, Range B before Range A
     $this->assertEquals(0, $base->findDaysInRangeOverlap($Jan_01_2011, $Jan_15_2011, $Jan_01_2010, $Jan_15_2010));
     // Range B exactly matches Range A
     $Jan_01_2011 = new w2p_Utilities_Date('2011-01-01');
     $Jan_31_2011 = new w2p_Utilities_Date('2011-01-31');
     $this->assertEquals(21, $base->findDaysInRangeOverlap($Jan_01_2011, $Jan_31_2011, $Jan_01_2011, $Jan_31_2011));
     // Range B Start within Range A, Range B End after Range A
     $Jan_01_2011 = new w2p_Utilities_Date('2011-01-01');
     $Jan_15_2011 = new w2p_Utilities_Date('2011-01-15');
     $Jan_31_2011 = new w2p_Utilities_Date('2011-01-31');
     $Feb_15_2011 = new w2p_Utilities_Date('2011-02-15');
     $this->assertEquals(11, $base->findDaysInRangeOverlap($Jan_01_2011, $Jan_31_2011, $Jan_15_2011, $Feb_15_2011));
     // Range A entirely within Range B
     $Jan_01_2010 = new w2p_Utilities_Date('2010-01-01');
     $Jan_15_2011 = new w2p_Utilities_Date('2011-01-15');
     $Feb_15_2011 = new w2p_Utilities_Date('2011-02-15');
     $Jan_31_2012 = new w2p_Utilities_Date('2012-01-31');
     $this->assertEquals(22, $base->findDaysInRangeOverlap($Jan_15_2011, $Feb_15_2011, $Jan_01_2010, $Jan_31_2012));
     // Range B entirely within Range A
     $Jan_01_2010 = new w2p_Utilities_Date('2010-01-01');
     $Jan_15_2011 = new w2p_Utilities_Date('2011-01-15');
     $Feb_15_2011 = new w2p_Utilities_Date('2011-02-15');
     $Jan_31_2012 = new w2p_Utilities_Date('2012-01-31');
     $this->assertEquals(22, $base->findDaysInRangeOverlap($Jan_01_2010, $Jan_31_2012, $Jan_15_2011, $Feb_15_2011));
     // Range B Start before Range A, Range B End within Range A
     $Jan_01_2010 = new w2p_Utilities_Date('2010-01-01');
     $Jan_15_2011 = new w2p_Utilities_Date('2011-01-15');
     $Jan_31_2011 = new w2p_Utilities_Date('2011-01-31');
     $Feb_15_2011 = new w2p_Utilities_Date('2011-02-15');
     $this->assertEquals(11, $base->findDaysInRangeOverlap($Jan_15_2011, $Feb_15_2011, $Jan_01_2010, $Jan_31_2011));
 }