/**
  * Gets the chronology of this date, which is the Thai Buddhist calendar system.
  * <p>
  * The {@code Chronology} represents the calendar system in use.
  * The era and other fields in {@link ChronoField} are defined by the chronology.
  *
  * @return ThaiBuddhistChronology the Thai Buddhist chronology, not null
  */
 public function getChronology()
 {
     return ThaiBuddhistChronology::INSTANCE();
 }
 function data_format_withZone_withChronology()
 {
     $ym = YearMonth::of(2008, 6);
     $ld = LocalDate::of(2008, 6, 30);
     $lt = LocalTime::of(11, 30);
     $ldt = LocalDateTime::of(2008, 6, 30, 11, 30);
     $ot = OffsetTime::ofLocalTime(LocalTime::of(11, 30), self::OFFSET_PONE());
     $odt = OffsetDateTime::ofDateTime(LocalDateTime::of(2008, 6, 30, 11, 30), self::OFFSET_PONE());
     $zdt = ZonedDateTime::ofDateTime(LocalDateTime::of(2008, 6, 30, 11, 30), self::ZONE_PARIS());
     $thaiZdt = ThaiBuddhistChronology::INSTANCE()->zonedDateTimeFrom($zdt);
     $instant = Instant::ofEpochSecond(3600);
     return [[null, null, DayOfWeek::MONDAY(), "::::"], [null, null, $ym, "2008::::ISO"], [null, null, $ld, "2008::::ISO"], [null, null, $lt, ":11:::"], [null, null, $ldt, "2008:11:::ISO"], [null, null, $ot, ":11:+01:00::"], [null, null, $odt, "2008:11:+01:00::ISO"], [null, null, $zdt, "2008:11:+02:00:Europe/Paris:ISO"], [null, null, $instant, "::::"], [IsoChronology::INSTANCE(), null, DayOfWeek::MONDAY(), "::::ISO"], [IsoChronology::INSTANCE(), null, $ym, "2008::::ISO"], [IsoChronology::INSTANCE(), null, $ld, "2008::::ISO"], [IsoChronology::INSTANCE(), null, $lt, ":11:::ISO"], [IsoChronology::INSTANCE(), null, $ldt, "2008:11:::ISO"], [IsoChronology::INSTANCE(), null, $ot, ":11:+01:00::ISO"], [IsoChronology::INSTANCE(), null, $odt, "2008:11:+01:00::ISO"], [IsoChronology::INSTANCE(), null, $zdt, "2008:11:+02:00:Europe/Paris:ISO"], [IsoChronology::INSTANCE(), null, $instant, "::::ISO"], [null, self::ZONE_PARIS(), DayOfWeek::MONDAY(), ":::Europe/Paris:"], [null, self::ZONE_PARIS(), $ym, "2008:::Europe/Paris:ISO"], [null, self::ZONE_PARIS(), $ld, "2008:::Europe/Paris:ISO"], [null, self::ZONE_PARIS(), $lt, ":11::Europe/Paris:"], [null, self::ZONE_PARIS(), $ldt, "2008:11::Europe/Paris:ISO"], [null, self::ZONE_PARIS(), $ot, ":11:+01:00:Europe/Paris:"], [null, self::ZONE_PARIS(), $odt, "2008:12:+02:00:Europe/Paris:ISO"], [null, self::ZONE_PARIS(), $zdt, "2008:11:+02:00:Europe/Paris:ISO"], [null, self::ZONE_PARIS(), $instant, "1970:02:+01:00:Europe/Paris:ISO"], [null, self::OFFSET_PTHREE(), DayOfWeek::MONDAY(), ":::+03:00:"], [null, self::OFFSET_PTHREE(), $ym, "2008:::+03:00:ISO"], [null, self::OFFSET_PTHREE(), $ld, "2008:::+03:00:ISO"], [null, self::OFFSET_PTHREE(), $lt, ":11::+03:00:"], [null, self::OFFSET_PTHREE(), $ldt, "2008:11::+03:00:ISO"], [null, self::OFFSET_PTHREE(), $ot, null], [null, self::OFFSET_PTHREE(), $odt, "2008:13:+03:00:+03:00:ISO"], [null, self::OFFSET_PTHREE(), $zdt, "2008:12:+03:00:+03:00:ISO"], [null, self::OFFSET_PTHREE(), $instant, "1970:04:+03:00:+03:00:ISO"], [ThaiBuddhistChronology::INSTANCE(), null, DayOfWeek::MONDAY(), null], [ThaiBuddhistChronology::INSTANCE(), null, $ym, null], [ThaiBuddhistChronology::INSTANCE(), null, $ld, "2551::::ThaiBuddhist"], [ThaiBuddhistChronology::INSTANCE(), null, $lt, ":11:::ThaiBuddhist"], [ThaiBuddhistChronology::INSTANCE(), null, $ldt, "2551:11:::ThaiBuddhist"], [ThaiBuddhistChronology::INSTANCE(), null, $ot, ":11:+01:00::ThaiBuddhist"], [ThaiBuddhistChronology::INSTANCE(), null, $odt, "2551:11:+01:00::ThaiBuddhist"], [ThaiBuddhistChronology::INSTANCE(), null, $zdt, "2551:11:+02:00:Europe/Paris:ThaiBuddhist"], [ThaiBuddhistChronology::INSTANCE(), null, $instant, "::::ThaiBuddhist"], [ThaiBuddhistChronology::INSTANCE(), null, DayOfWeek::MONDAY(), null], [ThaiBuddhistChronology::INSTANCE(), self::ZONE_PARIS(), $ym, null], [ThaiBuddhistChronology::INSTANCE(), self::ZONE_PARIS(), $ld, "2551:::Europe/Paris:ThaiBuddhist"], [ThaiBuddhistChronology::INSTANCE(), self::ZONE_PARIS(), $lt, ":11::Europe/Paris:ThaiBuddhist"], [ThaiBuddhistChronology::INSTANCE(), self::ZONE_PARIS(), $ldt, "2551:11::Europe/Paris:ThaiBuddhist"], [ThaiBuddhistChronology::INSTANCE(), self::ZONE_PARIS(), $ot, ":11:+01:00:Europe/Paris:ThaiBuddhist"], [ThaiBuddhistChronology::INSTANCE(), self::ZONE_PARIS(), $odt, "2551:12:+02:00:Europe/Paris:ThaiBuddhist"], [ThaiBuddhistChronology::INSTANCE(), self::ZONE_PARIS(), $zdt, "2551:11:+02:00:Europe/Paris:ThaiBuddhist"], [ThaiBuddhistChronology::INSTANCE(), self::ZONE_PARIS(), $instant, "2513:02:+01:00:Europe/Paris:ThaiBuddhist"], [null, self::ZONE_PARIS(), $thaiZdt, "2551:11:+02:00:Europe/Paris:ThaiBuddhist"], [ThaiBuddhistChronology::INSTANCE(), self::ZONE_PARIS(), $thaiZdt, "2551:11:+02:00:Europe/Paris:ThaiBuddhist"], [IsoChronology::INSTANCE(), self::ZONE_PARIS(), $thaiZdt, "2008:11:+02:00:Europe/Paris:ISO"]];
 }
 /**
  * Returns the available chronologies.
  * <p>
  * Each returned {@code Chronology} is available for use in the system.
  * The set of chronologies includes the system chronologies and
  * any chronologies provided by the application via ServiceLoader
  * configuration.
  *
  * @return Chronology[] the independent, modifiable set of the available chronology IDs, not null
  */
 static function getAvailableChronologies()
 {
     return [IsoChronology::INSTANCE(), MinguoChronology::INSTANCE(), ThaiBuddhistChronology::INSTANCE()];
 }
 public function test_parse_errorMessage()
 {
     $this->assertGoodErrorDate([DayOfWeek::class, "from"], "DayOfWeek");
     $this->assertGoodErrorDate([Month::class, "from"], "Month");
     $this->assertGoodErrorDate([YearMonth::class, "from"], "YearMonth");
     $this->assertGoodErrorDate([MonthDay::class, "from"], "MonthDay");
     $this->assertGoodErrorDate([LocalDate::class, "from"], "LocalDate");
     $this->assertGoodErrorDate([LocalTime::class, "from"], "LocalTime");
     $this->assertGoodErrorDate([LocalDateTime::class, "from"], "LocalDateTime");
     $this->assertGoodErrorDate([OffsetTime::class, "from"], "OffsetTime");
     $this->assertGoodErrorDate([OffsetDateTime::class, "from"], "OffsetDateTime");
     $this->assertGoodErrorDate([ZonedDateTime::class, "from"], "ZonedDateTime");
     $this->assertGoodErrorDate([Instant::class, "from"], "Instant");
     $this->assertGoodErrorDate([ZoneOffset::class, "from"], "ZoneOffset");
     $this->assertGoodErrorDate([ZoneId::class, "from"], "ZoneId");
     $this->assertGoodErrorDate([ThaiBuddhistChronology::INSTANCE(), 'dateFrom'], "LocalDate");
     $this->assertGoodErrorTime([DayOfWeek::class, "from"], "DayOfWeek");
     $this->assertGoodErrorTime([Month::class, "from"], "Month");
     $this->assertGoodErrorTime([Year::class, "from"], "Year");
     $this->assertGoodErrorTime([YearMonth::class, "from"], "YearMonth");
     $this->assertGoodErrorTime([MonthDay::class, "from"], "MonthDay");
     $this->assertGoodErrorTime([LocalDate::class, "from"], "LocalDate");
     $this->assertGoodErrorTime([LocalTime::class, "from"], "LocalTime");
     $this->assertGoodErrorTime([LocalDateTime::class, "from"], "LocalDateTime");
     $this->assertGoodErrorTime([OffsetTime::class, "from"], "OffsetTime");
     $this->assertGoodErrorTime([OffsetDateTime::class, "from"], "OffsetDateTime");
     $this->assertGoodErrorTime([ZonedDateTime::class, "from"], "ZonedDateTime");
     $this->assertGoodErrorTime([Instant::class, "from"], "Instant");
     $this->assertGoodErrorTime([ZoneOffset::class, "from"], "ZoneOffset");
     $this->assertGoodErrorTime([ZoneId::class, "from"], "ZoneId");
     $this->assertGoodErrorTime([ThaiBuddhistChronology::INSTANCE(), 'dateFrom'], "LocalDate");
 }
 /**
  * @expectedException \Celest\DateTimeException
  */
 public function test_minus_TemporalAmount_nonISO()
 {
     $this->markTestIncomplete('ChronoPeriodImpl');
     $this->pymd(4, 5, 6)->minusAmount(ThaiBuddhistChronology::INSTANCE()->period(1, 0, 0));
 }
 /**
  * @expectedException \Celest\DateTimeParseException
  */
 public function test_fieldResolvesToChronoZonedDateTime_overrideChrono_wrongChrono()
 {
     $cldt = ThaiBuddhistChronology::INSTANCE()->dateNow()->atTime(LocalTime::NOON())->atZone(self::EUROPE_PARIS());
     $f = (new DateTimeFormatterBuilder())->appendValue(new ResolvingField($cldt))->toFormatter();
     $f = $f->withChronology(MinguoChronology::INSTANCE());
     $f->parse("1234567890");
 }
 public function provider_reducedWithChrono()
 {
     $baseYear = LocalDate::of(2000, 1, 1);
     return [[IsoChronology::INSTANCE()->dateFrom($baseYear)], [IsoChronology::INSTANCE()->dateFrom($baseYear)->plus(1, ChronoUnit::YEARS())], [IsoChronology::INSTANCE()->dateFrom($baseYear)->plus(99, ChronoUnit::YEARS())], [MinguoChronology::INSTANCE()->dateFrom($baseYear)], [MinguoChronology::INSTANCE()->dateFrom($baseYear)->plus(1, ChronoUnit::YEARS())], [MinguoChronology::INSTANCE()->dateFrom($baseYear)->plus(99, ChronoUnit::YEARS())], [ThaiBuddhistChronology::INSTANCE()->dateFrom($baseYear)], [ThaiBuddhistChronology::INSTANCE()->dateFrom($baseYear)->plus(1, ChronoUnit::YEARS())], [ThaiBuddhistChronology::INSTANCE()->dateFrom($baseYear)->plus(99, ChronoUnit::YEARS())]];
 }