test/java/time/test/java/time/temporal/TestThaiBuddhistChronoImpl.java

Print this page




  48  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
  49  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  50  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  51  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  52  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
  53  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  54  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  55  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  56  */
  57 package test.java.time.temporal;
  58 
  59 import static org.testng.Assert.assertEquals;
  60 
  61 import java.util.Calendar;
  62 import java.util.Locale;
  63 import java.util.TimeZone;
  64 
  65 import java.time.LocalDate;
  66 import java.time.temporal.ChronoField;
  67 import java.time.temporal.ChronoUnit;
  68 import java.time.temporal.ChronoLocalDate;
  69 import java.time.calendar.ThaiBuddhistChrono;

  70 
  71 import org.testng.annotations.Test;
  72 import org.testng.annotations.DataProvider;
  73 
  74 /**
  75  * Test.
  76  */
  77 @Test
  78 public class TestThaiBuddhistChronoImpl {
  79 
  80     /**
  81      * Range of years to check consistency with java.util.Calendar
  82      */
  83     @DataProvider(name="RangeVersusCalendar")
  84     Object[][] provider_rangeVersusCalendar() {
  85         return new Object[][] {
  86             {LocalDate.of(1583, 1, 1), LocalDate.of(2100, 1, 1)},
  87         };
  88     }
  89 
  90     //-----------------------------------------------------------------------
  91     // Verify  ThaiBuddhist Calendar matches java.util.Calendar for range
  92     //-----------------------------------------------------------------------
  93     @Test(groups={"implementation"}, dataProvider="RangeVersusCalendar")
  94     public void test_ThaiBuddhistChrono_vsCalendar(LocalDate isoStartDate, LocalDate isoEndDate) {
  95         Locale locale = Locale.forLanguageTag("th-TH--u-ca-buddhist");
  96         assertEquals(locale.toString(), "th_TH", "Unexpected locale");
  97         Calendar cal = java.util.Calendar.getInstance(locale);
  98         assertEquals(cal.getCalendarType(), "buddhist", "Unexpected calendar type");
  99 
 100         ChronoLocalDate<ThaiBuddhistChrono> thaiDate = ThaiBuddhistChrono.INSTANCE.date(isoStartDate);
 101 
 102         cal.setTimeZone(TimeZone.getTimeZone("GMT+00"));
 103         cal.set(Calendar.YEAR, thaiDate.get(ChronoField.YEAR));
 104         cal.set(Calendar.MONTH, thaiDate.get(ChronoField.MONTH_OF_YEAR) - 1);
 105         cal.set(Calendar.DAY_OF_MONTH, thaiDate.get(ChronoField.DAY_OF_MONTH));
 106 
 107         while (thaiDate.isBefore(isoEndDate)) {
 108             assertEquals(thaiDate.get(ChronoField.DAY_OF_MONTH), cal.get(Calendar.DAY_OF_MONTH), "Day mismatch in " + thaiDate + ";  cal: " + cal);
 109             assertEquals(thaiDate.get(ChronoField.MONTH_OF_YEAR), cal.get(Calendar.MONTH) + 1, "Month mismatch in " + thaiDate);
 110             assertEquals(thaiDate.get(ChronoField.YEAR_OF_ERA), cal.get(Calendar.YEAR), "Year mismatch in " + thaiDate);
 111 
 112             thaiDate = thaiDate.plus(1, ChronoUnit.DAYS);
 113             cal.add(Calendar.DAY_OF_MONTH, 1);
 114         }
 115     }
 116 
 117     private String calToString(Calendar cal) {
 118         return String.format("%04d-%02d-%02d",
 119                 cal.get(Calendar.YEAR), cal.get(Calendar.MONTH) + 1, cal.get(Calendar.DAY_OF_MONTH));
 120     }


  48  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
  49  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  50  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  51  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  52  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
  53  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  54  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  55  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  56  */
  57 package test.java.time.temporal;
  58 
  59 import static org.testng.Assert.assertEquals;
  60 
  61 import java.util.Calendar;
  62 import java.util.Locale;
  63 import java.util.TimeZone;
  64 
  65 import java.time.LocalDate;
  66 import java.time.temporal.ChronoField;
  67 import java.time.temporal.ChronoUnit;
  68 import java.time.chrono.ChronoLocalDate;
  69 import java.time.chrono.ThaiBuddhistChronology;
  70 import java.time.chrono.ThaiBuddhistDate;
  71 
  72 import org.testng.annotations.Test;
  73 import org.testng.annotations.DataProvider;
  74 
  75 /**
  76  * Test.
  77  */
  78 @Test
  79 public class TestThaiBuddhistChronoImpl {
  80 
  81     /**
  82      * Range of years to check consistency with java.util.Calendar
  83      */
  84     @DataProvider(name="RangeVersusCalendar")
  85     Object[][] provider_rangeVersusCalendar() {
  86         return new Object[][] {
  87             {LocalDate.of(1583, 1, 1), LocalDate.of(2100, 1, 1)},
  88         };
  89     }
  90 
  91     //-----------------------------------------------------------------------
  92     // Verify  ThaiBuddhist Calendar matches java.util.Calendar for range
  93     //-----------------------------------------------------------------------
  94     @Test(groups={"implementation"}, dataProvider="RangeVersusCalendar")
  95     public void test_ThaiBuddhistChrono_vsCalendar(LocalDate isoStartDate, LocalDate isoEndDate) {
  96         Locale locale = Locale.forLanguageTag("th-TH--u-ca-buddhist");
  97         assertEquals(locale.toString(), "th_TH", "Unexpected locale");
  98         Calendar cal = java.util.Calendar.getInstance(locale);
  99         assertEquals(cal.getCalendarType(), "buddhist", "Unexpected calendar type");
 100 
 101         ThaiBuddhistDate thaiDate = ThaiBuddhistChronology.INSTANCE.date(isoStartDate);
 102 
 103         cal.setTimeZone(TimeZone.getTimeZone("GMT+00"));
 104         cal.set(Calendar.YEAR, thaiDate.get(ChronoField.YEAR));
 105         cal.set(Calendar.MONTH, thaiDate.get(ChronoField.MONTH_OF_YEAR) - 1);
 106         cal.set(Calendar.DAY_OF_MONTH, thaiDate.get(ChronoField.DAY_OF_MONTH));
 107 
 108         while (thaiDate.isBefore(isoEndDate)) {
 109             assertEquals(thaiDate.get(ChronoField.DAY_OF_MONTH), cal.get(Calendar.DAY_OF_MONTH), "Day mismatch in " + thaiDate + ";  cal: " + cal);
 110             assertEquals(thaiDate.get(ChronoField.MONTH_OF_YEAR), cal.get(Calendar.MONTH) + 1, "Month mismatch in " + thaiDate);
 111             assertEquals(thaiDate.get(ChronoField.YEAR_OF_ERA), cal.get(Calendar.YEAR), "Year mismatch in " + thaiDate);
 112 
 113             thaiDate = thaiDate.plus(1, ChronoUnit.DAYS);
 114             cal.add(Calendar.DAY_OF_MONTH, 1);
 115         }
 116     }
 117 
 118     private String calToString(Calendar cal) {
 119         return String.format("%04d-%02d-%02d",
 120                 cal.get(Calendar.YEAR), cal.get(Calendar.MONTH) + 1, cal.get(Calendar.DAY_OF_MONTH));
 121     }