/**
  * Rewind the recurrence iterator
  * @return void
  * @access public
  */
 public function rewind()
 {
     $this->regenerateMonthArray = true;
     parent::rewind();
 }
 public function testWeeklyRecurrenceRules()
 {
     /**
        This is a rule for the days my mom works (if she worked once every four weeks)
     			DTSTART;TZID=US-Pacific:20100215T080000
     			RRULE:FREQ=WEEKLY;BYDAY=MO,TU;BYHOUR=8;
     			 INTERVAL=4
     */
     $start = new qCal_DateTime(2010, 2, 15, 8, 0, 0, qCal_Timezone::factory('US/Pacific'));
     $recur = qCal_DateTime_Recur::factory('weekly', $start);
     $recur->setInterval(4)->setCount(25)->addRule(new qCal_DateTime_Recur_Rule_ByDay(array('MO', 'TU')))->addRule(new qCal_DateTime_Recur_Rule_ByHour(8))->rewind();
     // is this even necessary? It shouldn't be...
     $this->assertEqual($recur->count(), 25);
     $this->assertEqual($recur->current()->format('Y-m-d H:i:s'), '2008-02-15 08:00:00');
     $this->assertEqual($recur->next()->format('Y-m-d H:i:s'), '2008-02-16 08:00:00');
     $this->assertEqual($recur->next()->format('Y-m-d H:i:s'), '2008-03-15 08:00:00');
     $this->assertEqual($recur->next()->format('Y-m-d H:i:s'), '2008-03-16 08:00:00');
     $this->assertEqual($recur->next()->format('Y-m-d H:i:s'), '2008-04-12 08:00:00');
     $this->assertEqual($recur->next()->format('Y-m-d H:i:s'), '2008-04-13 08:00:00');
 }