--- old/test/java/time/test/java/time/chrono/TestIsoChronoImpl.java 2013-04-11 23:17:57.000000000 -0700 +++ new/test/java/time/test/java/time/chrono/TestIsoChronoImpl.java 2013-04-11 23:17:57.000000000 -0700 @@ -60,19 +60,16 @@ import static java.time.temporal.ChronoField.MONTH_OF_YEAR; import static java.time.temporal.ChronoField.YEAR; import static java.time.temporal.ChronoField.YEAR_OF_ERA; - import static org.testng.Assert.assertEquals; -import java.util.Calendar; -import java.util.GregorianCalendar; -import java.util.TimeZone; - import java.time.DayOfWeek; import java.time.LocalDate; -import java.time.chrono.ChronoLocalDate; import java.time.chrono.IsoChronology; import java.time.temporal.ChronoUnit; import java.time.temporal.WeekFields; +import java.util.Calendar; +import java.util.GregorianCalendar; +import java.util.TimeZone; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; @@ -86,15 +83,14 @@ @DataProvider(name = "RangeVersusCalendar") Object[][] provider_rangeVersusCalendar() { return new Object[][]{ - {LocalDate.of(1900, 1, 4), LocalDate.of(2100, 1, 8)}, - //{LocalDate.of(1583, 1, 1), LocalDate.of(2100, 1, 1)}, + {LocalDate.of(1583, 1, 1), LocalDate.of(2100, 1, 1)}, }; } //----------------------------------------------------------------------- // Verify ISO Calendar matches java.util.Calendar for range //----------------------------------------------------------------------- - @Test(groups = {"implementation"}, dataProvider = "RangeVersusCalendar") + @Test(dataProvider = "RangeVersusCalendar") public void test_IsoChrono_vsCalendar(LocalDate isoStartDate, LocalDate isoEndDate) { GregorianCalendar cal = new GregorianCalendar(); assertEquals(cal.getCalendarType(), "gregory", "Unexpected calendar type"); @@ -119,7 +115,7 @@ // Verify ISO Calendar matches java.util.Calendar // DayOfWeek, WeekOfMonth, WeekOfYear for range //----------------------------------------------------------------------- - @Test(groups = {"implementation"}, dataProvider = "RangeVersusCalendar") + @Test(dataProvider = "RangeVersusCalendar") public void test_DayOfWeek_IsoChronology_vsCalendar(LocalDate isoStartDate, LocalDate isoEndDate) { GregorianCalendar cal = new GregorianCalendar(); assertEquals(cal.getCalendarType(), "gregory", "Unexpected calendar type"); @@ -136,32 +132,31 @@ cal.set(Calendar.MONTH, isoDate.get(MONTH_OF_YEAR) - 1); cal.set(Calendar.DAY_OF_MONTH, isoDate.get(DAY_OF_MONTH)); + // For every date in the range while (isoDate.isBefore(isoEndDate)) { assertEquals(isoDate.get(DAY_OF_MONTH), cal.get(Calendar.DAY_OF_MONTH), "Day mismatch in " + isoDate + "; cal: " + cal); assertEquals(isoDate.get(MONTH_OF_YEAR), cal.get(Calendar.MONTH) + 1, "Month mismatch in " + isoDate); assertEquals(isoDate.get(YEAR_OF_ERA), cal.get(Calendar.YEAR), "Year mismatch in " + isoDate); - int jDOW = Math.floorMod(cal.get(Calendar.DAY_OF_WEEK) - 2, 7) + 1; - int isoDOW = isoDate.get(weekDef.dayOfWeek()); - if (jDOW != isoDOW) { - System.err.printf(" DOW vs Calendar jdow: %s, isoDate(DOW): %s, isoDate: %s, WeekDef: %s%n", jDOW, isoDOW, isoDate, weekDef); - } - assertEquals(jDOW, isoDOW, "Calendar DayOfWeek does not match ISO DayOfWeek"); + + int jdow = Math.floorMod(cal.get(Calendar.DAY_OF_WEEK) - 2, 7) + 1; + int dow = isoDate.get(weekDef.dayOfWeek()); + assertEquals(jdow, dow, "Calendar DayOfWeek does not match ISO DayOfWeek"); int jweekOfMonth = cal.get(Calendar.WEEK_OF_MONTH); int isoWeekOfMonth = isoDate.get(weekDef.weekOfMonth()); - if (jweekOfMonth != isoWeekOfMonth) { - System.err.printf(" WeekOfMonth jWeekOfMonth: %s, isoWeekOfMonth: %s, isoDate: %s, %s%n", - jweekOfMonth, isoWeekOfMonth, isoDate, weekDef); - } assertEquals(jweekOfMonth, isoWeekOfMonth, "Calendar WeekOfMonth does not match ISO WeekOfMonth"); int jweekOfYear = cal.get(Calendar.WEEK_OF_YEAR); - int isoWeekOfYear = isoDate.get(weekDef.weekOfYear()); - if (jweekOfYear != isoWeekOfYear) { - // TBD: Issue #186 Remove misleading output pending resolution - // System.err.printf(" Mismatch WeekOfYear jweekOfYear: %s, isoWeekOfYear: %s, isoDate: %s, WeekDef: %s%n", jweekOfYear, isoWeekOfYear, isoDate, weekDef); - } - //assertEquals(jweekOfYear, isoWeekOfYear, "Calendar WeekOfYear does not match ISO WeekOfYear"); + int weekOfYear = isoDate.get(weekDef.weekOfWeekBasedYear()); + assertEquals(jweekOfYear, weekOfYear, "GregorianCalendar WeekOfYear does not match WeekOfWeekBasedYear"); + + int jWeekYear = cal.getWeekYear(); + int weekBasedYear = isoDate.get(weekDef.weekBasedYear()); + assertEquals(jWeekYear, weekBasedYear, "GregorianCalendar getWeekYear does not match YearOfWeekBasedYear"); + + int jweeksInWeekyear = cal.getWeeksInWeekYear(); + int weeksInWeekBasedYear = (int)isoDate.range(weekDef.weekOfWeekBasedYear()).getMaximum(); + assertEquals(jweeksInWeekyear, weeksInWeekBasedYear, "length of weekBasedYear"); isoDate = isoDate.plus(1, ChronoUnit.DAYS); cal.add(Calendar.DAY_OF_MONTH, 1);