function data_weekFields()
 {
     $objects = [];
     $i = 0;
     foreach (DayOfWeek::values() as $firstDayOfWeek) {
         for ($minDays = 1; $minDays <= 7; $minDays++) {
             $objects[$i++] = [$firstDayOfWeek, $minDays];
         }
     }
     return $objects;
 }
 public function test_enum()
 {
     $this->assertEquals(DayOfWeek::valueOf("MONDAY"), DayOfWeek::MONDAY());
     $this->assertEquals(DayOfWeek::values()[0], DayOfWeek::MONDAY());
 }
 public function test_previousOrCurrent()
 {
     foreach (Month::values() as $month) {
         for ($i = 1; $i <= $month->length(false); $i++) {
             $date = self::date(2007, $month, $i);
             foreach (DayOfWeek::values() as $dow) {
                 $test = TemporalAdjusters::previousOrSame($dow)->adjustInto($date);
                 $this->assertSame($test->getDayOfWeek(), $dow);
                 if ($test->getYear() == 2007) {
                     $dayDiff = $test->getDayOfYear() - $date->getDayOfYear();
                     $this->assertTrue($dayDiff <= 0 && $dayDiff > -7);
                     $this->assertEquals($date->equals($test), $date->getDayOfWeek() == $dow);
                 } else {
                     $this->assertFalse($date->getDayOfWeek() == $dow);
                     $this->assertSame($month, Month::JANUARY());
                     $this->assertTrue($date->getDayOfMonth() < 7);
                     $this->assertEquals($test->getYear(), 2006);
                     $this->assertSame($test->getMonth(), Month::DECEMBER());
                     $this->assertTrue($test->getDayOfMonth() > 25);
                 }
             }
         }
     }
 }