Пример #1
0
        internal void DoRollAdd(bool roll, ChineseCalendar cal, int[][] tests)
        {
            String name = (roll) ? "rolling" : "adding";

            for (int i = 0; i < tests.Length; i++)
            {
                int[] test = tests[i];

                cal.Clear();
                cal.Set(IBM.ICU.Util.Calendar.EXTENDED_YEAR, test[0]);
                cal.Set(IBM.ICU.Util.Calendar.MONTH, test[1] - 1);
                cal.Set(IBM.ICU.Util.ChineseCalendar.IS_LEAP_MONTH, test[2]);
                cal.Set(IBM.ICU.Util.Calendar.DAY_OF_MONTH, test[3]);
                if (roll)
                {
                    cal.Roll(test[4], test[5]);
                }
                else
                {
                    cal.Add(test[4], test[5]);
                }
                if (cal.Get(IBM.ICU.Util.Calendar.EXTENDED_YEAR) != test[6] ||
                    cal.Get(IBM.ICU.Charset.CalendarTest.MONTH) != (test[7] - 1) ||
                    cal.Get(IBM.ICU.Util.ChineseCalendar.IS_LEAP_MONTH) != test[8] ||
                    cal.Get(IBM.ICU.Charset.CalendarTest.DATE) != test[9])
                {
                    Errln("Fail: " + name + " "
                          + YmdToString(test[0], test[1] - 1, test[2], test[3])
                          + " " + IBM.ICU.Charset.CalendarTest.FieldName(test[4]) + " by " + test[5]
                          + ": expected "
                          + YmdToString(test[6], test[7] - 1, test[8], test[9])
                          + ", got " + IBM.ICU.Charset.CalendarTest.YmdToString(cal));
                }
                else if (IsVerbose())
                {
                    Logln("OK: " + name + " "
                          + YmdToString(test[0], test[1] - 1, test[2], test[3])
                          + " " + IBM.ICU.Charset.CalendarTest.FieldName(test[4]) + " by " + test[5]
                          + ": got " + IBM.ICU.Charset.CalendarTest.YmdToString(cal));
                }
            }
        }