protected function invalidFields()
 {
     $list = array_diff(ChronoField::values(), $this->validFields());
     $list[] = JulianFields::JULIAN_DAY();
     $list[] = JulianFields::MODIFIED_JULIAN_DAY();
     $list[] = JulianFields::RATA_DIE();
     return $list;
 }
 protected function validFields()
 {
     return [CF::DAY_OF_WEEK(), CF::ALIGNED_DAY_OF_WEEK_IN_MONTH(), CF::ALIGNED_DAY_OF_WEEK_IN_YEAR(), CF::DAY_OF_MONTH(), CF::DAY_OF_YEAR(), CF::EPOCH_DAY(), CF::ALIGNED_WEEK_OF_MONTH(), CF::ALIGNED_WEEK_OF_YEAR(), CF::MONTH_OF_YEAR(), CF::PROLEPTIC_MONTH(), CF::YEAR_OF_ERA(), CF::YEAR(), CF::ERA(), JulianFields::JULIAN_DAY(), JulianFields::MODIFIED_JULIAN_DAY(), JulianFields::RATA_DIE()];
 }
 protected function validFields()
 {
     return [CF::NANO_OF_SECOND(), CF::NANO_OF_DAY(), CF::MICRO_OF_SECOND(), CF::MICRO_OF_DAY(), CF::MILLI_OF_SECOND(), CF::MILLI_OF_DAY(), CF::SECOND_OF_MINUTE(), CF::SECOND_OF_DAY(), CF::MINUTE_OF_HOUR(), CF::MINUTE_OF_DAY(), CF::CLOCK_HOUR_OF_AMPM(), CF::HOUR_OF_AMPM(), CF::CLOCK_HOUR_OF_DAY(), CF::HOUR_OF_DAY(), CF::AMPM_OF_DAY(), CF::DAY_OF_WEEK(), CF::ALIGNED_DAY_OF_WEEK_IN_MONTH(), CF::ALIGNED_DAY_OF_WEEK_IN_YEAR(), CF::DAY_OF_MONTH(), CF::DAY_OF_YEAR(), CF::EPOCH_DAY(), CF::ALIGNED_WEEK_OF_MONTH(), CF::ALIGNED_WEEK_OF_YEAR(), CF::MONTH_OF_YEAR(), CF::PROLEPTIC_MONTH(), CF::YEAR_OF_ERA(), CF::YEAR(), CF::ERA(), CF::OFFSET_SECONDS(), CF::INSTANT_SECONDS(), JulianFields::JULIAN_DAY(), JulianFields::MODIFIED_JULIAN_DAY(), JulianFields::RATA_DIE()];
 }
 public function test_basics()
 {
     $this->assertEquals(JulianFields::JULIAN_DAY()->isDateBased(), true);
     $this->assertEquals(JulianFields::JULIAN_DAY()->isTimeBased(), false);
     $this->assertEquals(JulianFields::MODIFIED_JULIAN_DAY()->isDateBased(), true);
     $this->assertEquals(JulianFields::MODIFIED_JULIAN_DAY()->isTimeBased(), false);
     $this->assertEquals(JulianFields::RATA_DIE()->isDateBased(), true);
     $this->assertEquals(JulianFields::RATA_DIE()->isTimeBased(), false);
 }