159 @Test
160 public void test_chrono_byLocale_oldJP_variant() {
161 Chronology test = Chronology.ofLocale(new Locale("ja", "JP", "JP"));
162 Assert.assertEquals(test.getId(), "Japanese");
163 Assert.assertEquals(test, JapaneseChronology.INSTANCE);
164 }
165
166 @Test
167 public void test_chrono_byLocale_iso() {
168 Assert.assertEquals(Chronology.ofLocale(new Locale("ja", "JP")).getId(), "ISO");
169 Assert.assertEquals(Chronology.ofLocale(Locale.forLanguageTag("ja-JP")).getId(), "ISO");
170 Assert.assertEquals(Chronology.ofLocale(Locale.forLanguageTag("ja-JP-JP")).getId(), "ISO");
171 }
172
173 //-----------------------------------------------------------------------
174 // creation and cross-checks
175 //-----------------------------------------------------------------------
176 @DataProvider(name="createByEra")
177 Object[][] data_createByEra() {
178 return new Object[][] {
179 {JapaneseEra.of(3), 2020 - YDIFF_REIWA, 2, 29, 60, LocalDate.of(2020, 2, 29)},
180 {JapaneseEra.HEISEI, 1996 - YDIFF_HEISEI, 2, 29, 60, LocalDate.of(1996, 2, 29)},
181 {JapaneseEra.HEISEI, 2000 - YDIFF_HEISEI, 2, 29, 60, LocalDate.of(2000, 2, 29)},
182 {JapaneseEra.MEIJI, 1874 - YDIFF_MEIJI, 2, 28, 59, LocalDate.of(1874, 2, 28)},
183 {JapaneseEra.SHOWA, 1928 - YDIFF_SHOWA, 12, 25, 360, LocalDate.of(1928, 12, 25)},
184 {JapaneseEra.TAISHO, 1916 - YDIFF_TAISHO, 7, 30, 212, LocalDate.of(1916, 7, 30)},
185 {JapaneseEra.MEIJI, 6, 1, 1, 1, LocalDate.of(1873, 1, 1)},
186 {JapaneseEra.MEIJI, 45, 7, 29, 211, LocalDate.of(1912, 7, 29)},
187 {JapaneseEra.TAISHO, 1, 7, 30, 1, LocalDate.of(1912, 7, 30)},
188 {JapaneseEra.TAISHO, 15, 12, 24, 358, LocalDate.of(1926, 12, 24)},
189 {JapaneseEra.SHOWA, 1, 12, 25, 1, LocalDate.of(1926, 12, 25)},
190 {JapaneseEra.SHOWA, 64, 1, 7, 7, LocalDate.of(1989, 1, 7)},
191 {JapaneseEra.HEISEI, 1, 1, 8, 1, LocalDate.of(1989, 1, 8)},
192 };
193 }
194
195 @Test(dataProvider="createByEra")
196 public void test_createEymd(JapaneseEra era, int yoe, int moy, int dom, int doy, LocalDate iso) {
197 JapaneseDate dateByChronoFactory = JapaneseChronology.INSTANCE.date(era, yoe, moy, dom);
198 JapaneseDate dateByDateFactory = JapaneseDate.of(era, yoe, moy, dom);
199 assertEquals(dateByChronoFactory, dateByDateFactory);
352
353 {1725, 2, 29},
354 {500, 2, 29},
355 {2100, 2, 29},
356
357 {1872, 12, 31}, // Last day of MEIJI 5
358 };
359 }
360
361 @Test(dataProvider="badDates", expectedExceptions=DateTimeException.class)
362 public void test_badDates(int year, int month, int dom) {
363 JapaneseChronology.INSTANCE.date(year, month, dom);
364 }
365
366 //-----------------------------------------------------------------------
367 // prolepticYear() and is LeapYear()
368 //-----------------------------------------------------------------------
369 @DataProvider(name="prolepticYear")
370 Object[][] data_prolepticYear() {
371 return new Object[][] {
372 {3, JapaneseEra.of(3), 1, 1 + YDIFF_REIWA, false},
373 {3, JapaneseEra.of(3), 102, 102 + YDIFF_REIWA, true},
374
375 {2, JapaneseEra.HEISEI, 1, 1 + YDIFF_HEISEI, false},
376 {2, JapaneseEra.HEISEI, 4, 4 + YDIFF_HEISEI, true},
377
378 {-1, JapaneseEra.MEIJI, 9, 9 + YDIFF_MEIJI, true},
379 {-1, JapaneseEra.MEIJI, 10, 10 + YDIFF_MEIJI, false},
380
381 {1, JapaneseEra.SHOWA, 1, 1 + YDIFF_SHOWA, false},
382 {1, JapaneseEra.SHOWA, 7, 7 + YDIFF_SHOWA, true},
383
384 {0, JapaneseEra.TAISHO, 1, 1 + YDIFF_TAISHO, true},
385 {0, JapaneseEra.TAISHO, 4, 4 + YDIFF_TAISHO, false},
386 };
387 }
388
389 @Test(dataProvider="prolepticYear")
390 public void test_prolepticYear(int eraValue, Era era, int yearOfEra, int expectedProlepticYear, boolean isLeapYear) {
391 Era eraObj = JapaneseChronology.INSTANCE.eraOf(eraValue);
392 assertTrue(JapaneseChronology.INSTANCE.eras().contains(eraObj));
393 assertEquals(eraObj, era);
538 assertEquals(test, LocalDate.of(1928, 10, 29));
539 }
540
541 @Test
542 public void test_LocalDateTime_adjustToJapaneseDate() {
543 JapaneseDate jdate = JapaneseChronology.INSTANCE.date(1928, 10, 29);
544 LocalDateTime test = LocalDateTime.MIN.with(jdate);
545 assertEquals(test, LocalDateTime.of(1928, 10, 29, 0, 0));
546 }
547
548 //-----------------------------------------------------------------------
549 // Check Japanese Eras
550 //-----------------------------------------------------------------------
551 @DataProvider(name="japaneseEras")
552 Object[][] data_japanseseEras() {
553 return new Object[][] {
554 { JapaneseEra.MEIJI, -1, "Meiji"},
555 { JapaneseEra.TAISHO, 0, "Taisho"},
556 { JapaneseEra.SHOWA, 1, "Showa"},
557 { JapaneseEra.HEISEI, 2, "Heisei"},
558 { JapaneseEra.of(3), 3, "Reiwa"},
559 };
560 }
561
562 @Test(dataProvider="japaneseEras")
563 public void test_Japanese_Eras(Era era, int eraValue, String name) {
564 assertEquals(era.getValue(), eraValue, "EraValue");
565 assertEquals(era.toString(), name, "Era Name");
566 assertEquals(era, JapaneseChronology.INSTANCE.eraOf(eraValue), "JapaneseChronology.eraOf()");
567 List<Era> eras = JapaneseChronology.INSTANCE.eras();
568 assertTrue(eras.contains(era), "Era is not present in JapaneseChronology.INSTANCE.eras()");
569 }
570
571 @Test
572 public void test_Japanese_badEras() {
573 int badEras[] = {-1000, -998, -997, -2, 4, 5, 1000};
574 for (int badEra : badEras) {
575 try {
576 Era era = JapaneseChronology.INSTANCE.eraOf(badEra);
577 fail("JapaneseChronology.eraOf returned " + era + " + for invalid eraValue " + badEra);
578 } catch (DateTimeException ex) {
|
159 @Test
160 public void test_chrono_byLocale_oldJP_variant() {
161 Chronology test = Chronology.ofLocale(new Locale("ja", "JP", "JP"));
162 Assert.assertEquals(test.getId(), "Japanese");
163 Assert.assertEquals(test, JapaneseChronology.INSTANCE);
164 }
165
166 @Test
167 public void test_chrono_byLocale_iso() {
168 Assert.assertEquals(Chronology.ofLocale(new Locale("ja", "JP")).getId(), "ISO");
169 Assert.assertEquals(Chronology.ofLocale(Locale.forLanguageTag("ja-JP")).getId(), "ISO");
170 Assert.assertEquals(Chronology.ofLocale(Locale.forLanguageTag("ja-JP-JP")).getId(), "ISO");
171 }
172
173 //-----------------------------------------------------------------------
174 // creation and cross-checks
175 //-----------------------------------------------------------------------
176 @DataProvider(name="createByEra")
177 Object[][] data_createByEra() {
178 return new Object[][] {
179 {JapaneseEra.REIWA, 2020 - YDIFF_REIWA, 2, 29, 60, LocalDate.of(2020, 2, 29)},
180 {JapaneseEra.HEISEI, 1996 - YDIFF_HEISEI, 2, 29, 60, LocalDate.of(1996, 2, 29)},
181 {JapaneseEra.HEISEI, 2000 - YDIFF_HEISEI, 2, 29, 60, LocalDate.of(2000, 2, 29)},
182 {JapaneseEra.MEIJI, 1874 - YDIFF_MEIJI, 2, 28, 59, LocalDate.of(1874, 2, 28)},
183 {JapaneseEra.SHOWA, 1928 - YDIFF_SHOWA, 12, 25, 360, LocalDate.of(1928, 12, 25)},
184 {JapaneseEra.TAISHO, 1916 - YDIFF_TAISHO, 7, 30, 212, LocalDate.of(1916, 7, 30)},
185 {JapaneseEra.MEIJI, 6, 1, 1, 1, LocalDate.of(1873, 1, 1)},
186 {JapaneseEra.MEIJI, 45, 7, 29, 211, LocalDate.of(1912, 7, 29)},
187 {JapaneseEra.TAISHO, 1, 7, 30, 1, LocalDate.of(1912, 7, 30)},
188 {JapaneseEra.TAISHO, 15, 12, 24, 358, LocalDate.of(1926, 12, 24)},
189 {JapaneseEra.SHOWA, 1, 12, 25, 1, LocalDate.of(1926, 12, 25)},
190 {JapaneseEra.SHOWA, 64, 1, 7, 7, LocalDate.of(1989, 1, 7)},
191 {JapaneseEra.HEISEI, 1, 1, 8, 1, LocalDate.of(1989, 1, 8)},
192 };
193 }
194
195 @Test(dataProvider="createByEra")
196 public void test_createEymd(JapaneseEra era, int yoe, int moy, int dom, int doy, LocalDate iso) {
197 JapaneseDate dateByChronoFactory = JapaneseChronology.INSTANCE.date(era, yoe, moy, dom);
198 JapaneseDate dateByDateFactory = JapaneseDate.of(era, yoe, moy, dom);
199 assertEquals(dateByChronoFactory, dateByDateFactory);
352
353 {1725, 2, 29},
354 {500, 2, 29},
355 {2100, 2, 29},
356
357 {1872, 12, 31}, // Last day of MEIJI 5
358 };
359 }
360
361 @Test(dataProvider="badDates", expectedExceptions=DateTimeException.class)
362 public void test_badDates(int year, int month, int dom) {
363 JapaneseChronology.INSTANCE.date(year, month, dom);
364 }
365
366 //-----------------------------------------------------------------------
367 // prolepticYear() and is LeapYear()
368 //-----------------------------------------------------------------------
369 @DataProvider(name="prolepticYear")
370 Object[][] data_prolepticYear() {
371 return new Object[][] {
372 {3, JapaneseEra.REIWA, 1, 1 + YDIFF_REIWA, false},
373 {3, JapaneseEra.REIWA, 102, 102 + YDIFF_REIWA, true},
374
375 {2, JapaneseEra.HEISEI, 1, 1 + YDIFF_HEISEI, false},
376 {2, JapaneseEra.HEISEI, 4, 4 + YDIFF_HEISEI, true},
377
378 {-1, JapaneseEra.MEIJI, 9, 9 + YDIFF_MEIJI, true},
379 {-1, JapaneseEra.MEIJI, 10, 10 + YDIFF_MEIJI, false},
380
381 {1, JapaneseEra.SHOWA, 1, 1 + YDIFF_SHOWA, false},
382 {1, JapaneseEra.SHOWA, 7, 7 + YDIFF_SHOWA, true},
383
384 {0, JapaneseEra.TAISHO, 1, 1 + YDIFF_TAISHO, true},
385 {0, JapaneseEra.TAISHO, 4, 4 + YDIFF_TAISHO, false},
386 };
387 }
388
389 @Test(dataProvider="prolepticYear")
390 public void test_prolepticYear(int eraValue, Era era, int yearOfEra, int expectedProlepticYear, boolean isLeapYear) {
391 Era eraObj = JapaneseChronology.INSTANCE.eraOf(eraValue);
392 assertTrue(JapaneseChronology.INSTANCE.eras().contains(eraObj));
393 assertEquals(eraObj, era);
538 assertEquals(test, LocalDate.of(1928, 10, 29));
539 }
540
541 @Test
542 public void test_LocalDateTime_adjustToJapaneseDate() {
543 JapaneseDate jdate = JapaneseChronology.INSTANCE.date(1928, 10, 29);
544 LocalDateTime test = LocalDateTime.MIN.with(jdate);
545 assertEquals(test, LocalDateTime.of(1928, 10, 29, 0, 0));
546 }
547
548 //-----------------------------------------------------------------------
549 // Check Japanese Eras
550 //-----------------------------------------------------------------------
551 @DataProvider(name="japaneseEras")
552 Object[][] data_japanseseEras() {
553 return new Object[][] {
554 { JapaneseEra.MEIJI, -1, "Meiji"},
555 { JapaneseEra.TAISHO, 0, "Taisho"},
556 { JapaneseEra.SHOWA, 1, "Showa"},
557 { JapaneseEra.HEISEI, 2, "Heisei"},
558 { JapaneseEra.REIWA, 3, "Reiwa"},
559 };
560 }
561
562 @Test(dataProvider="japaneseEras")
563 public void test_Japanese_Eras(Era era, int eraValue, String name) {
564 assertEquals(era.getValue(), eraValue, "EraValue");
565 assertEquals(era.toString(), name, "Era Name");
566 assertEquals(era, JapaneseChronology.INSTANCE.eraOf(eraValue), "JapaneseChronology.eraOf()");
567 List<Era> eras = JapaneseChronology.INSTANCE.eras();
568 assertTrue(eras.contains(era), "Era is not present in JapaneseChronology.INSTANCE.eras()");
569 }
570
571 @Test
572 public void test_Japanese_badEras() {
573 int badEras[] = {-1000, -998, -997, -2, 4, 5, 1000};
574 for (int badEra : badEras) {
575 try {
576 Era era = JapaneseChronology.INSTANCE.eraOf(badEra);
577 fail("JapaneseChronology.eraOf returned " + era + " + for invalid eraValue " + badEra);
578 } catch (DateTimeException ex) {
|