public function test_fieldResolvesToChronoZonedDateTime_overrideChrono_matches()
 {
     $mdt = MinguoDate::of(100, 6, 30);
     $mzdt = $mdt->atTime(LocalTime::NOON())->atZone(self::EUROPE_PARIS());
     $f = (new DateTimeFormatterBuilder())->appendValue(new ResolvingField($mzdt))->toFormatter();
     $f = $f->withChronology(MinguoChronology::INSTANCE());
     $accessor = $f->parse("1234567890");
     $this->assertEquals($accessor->query(TemporalQueries::localDate()), LocalDate::from($mdt));
     $this->assertEquals($accessor->query(TemporalQueries::localTime()), LocalTime::NOON());
     $this->assertEquals($accessor->query(TemporalQueries::chronology()), MinguoChronology::INSTANCE());
     $this->assertEquals($accessor->query(TemporalQueries::zoneId()), self::EUROPE_PARIS());
 }
 public function dateFrom(TemporalAccessor $temporal)
 {
     if ($temporal instanceof MinguoDate) {
         return $temporal;
     }
     return MinguoDate::ofIsoDate(LocalDate::from($temporal));
 }
 public function test_minguoChrono_extendedWidth()
 {
     // ISO 2021 is Minguo 110
     $f = $this->getFormatterBaseDate(ChronoField::YEAR(), 2, 4, 2021);
     $date = MinguoDate::of(109, 6, 30);
     $this->assertEquals($f->format($date), "109");
     $date = MinguoDate::of(110, 6, 30);
     $this->assertEquals($f->format($date), "10");
     $date = MinguoDate::of(199, 6, 30);
     $this->assertEquals($f->format($date), "99");
     $date = MinguoDate::of(200, 6, 30);
     $this->assertEquals($f->format($date), "00");
     $date = MinguoDate::of(209, 6, 30);
     $this->assertEquals($f->format($date), "09");
     $date = MinguoDate::of(210, 6, 30);
     $this->assertEquals($f->format($date), "210");
 }