public void TestElulMonth() { try { IBM.ICU.Util.HebrewCalendar cal = new IBM.ICU.Util.HebrewCalendar(); // Leap years are: // 3 6 8 11 14 17 19 (and so on - 19-year cycle) for (int year = 1; year < 50; year++) { // I hope that year = 0 does not exists // because the test fails for it ! cal.Clear(); cal.Set(IBM.ICU.Util.Calendar.YEAR, year); cal.Set(IBM.ICU.Util.Calendar.MONTH, ELUL); cal.Set(IBM.ICU.Util.Calendar.DAY_OF_MONTH, 1); int yact = cal.Get(IBM.ICU.Util.Calendar.YEAR); int mact = cal.Get(IBM.ICU.Util.Calendar.MONTH); if (year != yact || ELUL != mact) { Errln("Fail: " + ELUL + "/" + year + " -> " + mact + "/" + yact); } } } catch (MissingManifestResourceException ex) { Warnln("Got Exception: " + ex.Message); } }
public void TestDefaultFieldValues() { try { IBM.ICU.Util.HebrewCalendar cal = new IBM.ICU.Util.HebrewCalendar(); cal.Clear(); Logln("cal.clear() -> " + cal.GetTime()); } catch (MissingManifestResourceException ex) { Warnln("could not load the locale data"); } }
public void TestMonthMovement() { try { IBM.ICU.Util.HebrewCalendar cal = new IBM.ICU.Util.HebrewCalendar(); // Leap years are: // 3 6 8 11 14 17 19 (and so on - 19-year cycle) // We can't test complete() on some lines below because of ADAR_1 -- // if // the calendar is set to ADAR_1 on a non-leap year, the result is // undefined. int[] DATA = { // m1/y1 - month/year before (month is 1-based) // delta - amount to add to month field // m2/y2 - month/year after add(MONTH, delta) // m3/y3 - month/year after set(MONTH, m1+delta) // m1 y1 delta m2 y2 m3 y3 10, 2, +24, 9, 4, 9, 4, 10, 2, +60, 8, 7, 8, 7, 1, 2, +12, 1, 3, 13, 2, // *set != add; also see '*' below 3, 18, -24, 4, 16, 4, 16, 1, 6, -24, 1, 4, 1, 4, 4, 3, +2, 6, 3, 6, 3, // Leap year - no skip 4,5,6,7,8 8, 3, -2, 6, 3, 6, 3, // Leap year - no skip 4, 2, +2, 7, 2, 7, 2, // Skip leap month 4,5,(6),7,8 8, 2, -2, 5, 2, 7, 2, // *Skip leap month going backward }; for (int i = 0; i < DATA.Length;) { int m = DATA[i++], y = DATA[i++]; int monthDelta = DATA[i++]; int m2 = DATA[i++], y2 = DATA[i++]; int m3 = DATA[i++], y3 = DATA[i++]; int mact, yact; cal.Clear(); cal.Set(IBM.ICU.Util.Calendar.YEAR, y); cal.Set(IBM.ICU.Util.Calendar.MONTH, m - 1); cal.Add(IBM.ICU.Util.Calendar.MONTH, monthDelta); yact = cal.Get(IBM.ICU.Util.Calendar.YEAR); mact = cal.Get(IBM.ICU.Util.Calendar.MONTH) + 1; if (y2 != yact || m2 != mact) { Errln("Fail: " + m + "/" + y + " -> add(MONTH, " + monthDelta + ") -> " + mact + "/" + yact + ", expected " + m2 + "/" + y2); cal.Clear(); cal.Set(IBM.ICU.Util.Calendar.YEAR, y); cal.Set(IBM.ICU.Util.Calendar.MONTH, m - 1); Logln("Start: " + m + "/" + y); int delta = (monthDelta > 0) ? 1 : -1; for (int c = 0; c != monthDelta; c += delta) { cal.Add(IBM.ICU.Util.Calendar.MONTH, delta); Logln("+ " + delta + " MONTH -> " + (cal.Get(IBM.ICU.Util.Calendar.MONTH) + 1) + "/" + cal.Get(IBM.ICU.Util.Calendar.YEAR)); } } cal.Clear(); cal.Set(IBM.ICU.Util.Calendar.YEAR, y); cal.Set(IBM.ICU.Util.Calendar.MONTH, m + monthDelta - 1); yact = cal.Get(IBM.ICU.Util.Calendar.YEAR); mact = cal.Get(IBM.ICU.Util.Calendar.MONTH) + 1; if (y3 != yact || m3 != mact) { Errln("Fail: " + (m + monthDelta) + "/" + y + " -> complete() -> " + mact + "/" + yact + ", expected " + m3 + "/" + y3); } } } catch (MissingManifestResourceException ex) { Warnln("Got Exception: " + ex.Message); } }