Search in sources :

Example 1 with IslamicCalendar

use of android.icu.util.IslamicCalendar in project j2objc by google.

the class GlobalizationPreferencesTest method TestDateFormat.

@Test
public void TestDateFormat() {
    GlobalizationPreferences gp = new GlobalizationPreferences();
    String pattern;
    DateFormat df;
    // Set unsupported locale - ach
    logln("Set locale - ach");
    gp.setLocale(new ULocale("ach"));
    // Date - short
    df = gp.getDateFormat(GlobalizationPreferences.DF_SHORT, GlobalizationPreferences.DF_NONE);
    pattern = ((SimpleDateFormat) df).toPattern();
    // root pattern must be used
    if (!pattern.equals("y-MM-dd")) {
        errln("FAIL: SHORT date pattern is " + pattern + " Expected: y-MM-dd");
    }
    // Set locale - fr, fr_CA, fr_FR
    ArrayList lcls = new ArrayList(3);
    lcls.add(new ULocale("fr"));
    lcls.add(new ULocale("fr_CA"));
    lcls.add(new ULocale("fr_FR"));
    logln("Set locales - fr, fr_CA, fr_FR");
    gp.setLocales(lcls);
    // Date - short
    df = gp.getDateFormat(GlobalizationPreferences.DF_SHORT, GlobalizationPreferences.DF_NONE);
    pattern = ((SimpleDateFormat) df).toPattern();
    // fr_CA pattern must be used
    if (!pattern.equals("yy-MM-dd")) {
        errln("FAIL: SHORT date pattern is " + pattern + " Expected: yy-MM-dd");
    }
    // Set locale - en_GB
    logln("Set locale - en_GB");
    gp.setLocale(new ULocale("en_GB"));
    // Date - full
    df = gp.getDateFormat(GlobalizationPreferences.DF_FULL, GlobalizationPreferences.DF_NONE);
    pattern = ((SimpleDateFormat) df).toPattern();
    if (!pattern.equals("EEEE, d MMMM y")) {
        errln("FAIL: FULL date pattern is " + pattern + " Expected: EEEE, d MMMM y");
    }
    // Date - long
    df = gp.getDateFormat(GlobalizationPreferences.DF_LONG, GlobalizationPreferences.DF_NONE);
    pattern = ((SimpleDateFormat) df).toPattern();
    if (!pattern.equals("d MMMM y")) {
        errln("FAIL: LONG date pattern is " + pattern + " Expected: d MMMM y");
    }
    // Date - medium
    df = gp.getDateFormat(GlobalizationPreferences.DF_MEDIUM, GlobalizationPreferences.DF_NONE);
    pattern = ((SimpleDateFormat) df).toPattern();
    if (!pattern.equals("d MMM y")) {
        errln("FAIL: MEDIUM date pattern is " + pattern + " Expected: d MMM y");
    }
    // Date - short
    df = gp.getDateFormat(GlobalizationPreferences.DF_SHORT, GlobalizationPreferences.DF_NONE);
    pattern = ((SimpleDateFormat) df).toPattern();
    if (!pattern.equals("dd/MM/y")) {
        errln("FAIL: SHORT date pattern is " + pattern + " Expected: dd/MM/y");
    }
    // Time - full
    df = gp.getDateFormat(GlobalizationPreferences.DF_NONE, GlobalizationPreferences.DF_FULL);
    pattern = ((SimpleDateFormat) df).toPattern();
    if (!pattern.equals("HH:mm:ss zzzz")) {
        errln("FAIL: FULL time pattern is " + pattern + " Expected: HH:mm:ss zzzz");
    }
    // Time - long
    df = gp.getDateFormat(GlobalizationPreferences.DF_NONE, GlobalizationPreferences.DF_LONG);
    pattern = ((SimpleDateFormat) df).toPattern();
    if (!pattern.equals("HH:mm:ss z")) {
        errln("FAIL: LONG time pattern is " + pattern + " Expected: HH:mm:ss z");
    }
    // Time - medium
    df = gp.getDateFormat(GlobalizationPreferences.DF_NONE, GlobalizationPreferences.DF_MEDIUM);
    pattern = ((SimpleDateFormat) df).toPattern();
    if (!pattern.equals("HH:mm:ss")) {
        errln("FAIL: MEDIUM time pattern is " + pattern + " Expected: HH:mm:ss");
    }
    // Time - short
    df = gp.getDateFormat(GlobalizationPreferences.DF_NONE, GlobalizationPreferences.DF_SHORT);
    pattern = ((SimpleDateFormat) df).toPattern();
    if (!pattern.equals("HH:mm")) {
        errln("FAIL: SHORT time pattern is " + pattern + " Expected: HH:mm");
    }
    // Date/Time - full
    df = gp.getDateFormat(GlobalizationPreferences.DF_FULL, GlobalizationPreferences.DF_FULL);
    pattern = ((SimpleDateFormat) df).toPattern();
    if (!pattern.equals("EEEE, d MMMM y 'at' HH:mm:ss zzzz")) {
        errln("FAIL: FULL date/time pattern is " + pattern + " Expected: EEEE, d MMMM y 'at' HH:mm:ss zzzz");
    }
    // Invalid style
    boolean illegalArg = false;
    try {
        df = gp.getDateFormat(-1, GlobalizationPreferences.DF_NONE);
    } catch (IllegalArgumentException iae) {
        logln("Illegal date style -1");
        illegalArg = true;
    }
    if (!illegalArg) {
        errln("FAIL: getDateFormat() must throw IllegalArgumentException for dateStyle -1");
    }
    illegalArg = false;
    try {
        df = gp.getDateFormat(GlobalizationPreferences.DF_NONE, GlobalizationPreferences.DF_NONE);
    } catch (IllegalArgumentException iae) {
        logln("Illegal style - dateStyle:DF_NONE / timeStyle:DF_NONE");
        illegalArg = true;
    }
    if (!illegalArg) {
        errln("FAIL: getDateFormat() must throw IllegalArgumentException for dateStyle:DF_NONE/timeStyle:DF_NONE");
    }
    // Set explicit time zone
    logln("Set timezone - America/Sao_Paulo");
    TimeZone tz = TimeZone.getTimeZone("America/Sao_Paulo");
    gp.setTimeZone(tz);
    df = gp.getDateFormat(GlobalizationPreferences.DF_LONG, GlobalizationPreferences.DF_MEDIUM);
    String tzid = df.getTimeZone().getID();
    if (!tzid.equals("America/Sao_Paulo")) {
        errln("FAIL: The DateFormat instance must use timezone America/Sao_Paulo");
    }
    // Set explicit calendar
    logln("Set calendar - japanese");
    Calendar jcal = new JapaneseCalendar();
    jcal.setTimeZone(TimeZone.getTimeZone("Asia/Tokyo"));
    gp.setCalendar(jcal);
    df = gp.getDateFormat(GlobalizationPreferences.DF_SHORT, GlobalizationPreferences.DF_SHORT);
    Calendar dfCal = df.getCalendar();
    if (!(dfCal instanceof JapaneseCalendar)) {
        errln("FAIL: The DateFormat instance must use Japanese calendar");
    }
    // TimeZone must be still America/Sao_Paulo
    tzid = df.getTimeZone().getID();
    if (!tzid.equals("America/Sao_Paulo")) {
        errln("FAIL: The DateFormat instance must use timezone America/Sao_Paulo");
    }
    // Set explicit DateFormat
    logln("Set explicit date format - full date");
    DateFormat customFD = DateFormat.getDateInstance(new IslamicCalendar(), DateFormat.FULL, new ULocale("ar_SA"));
    customFD.setTimeZone(TimeZone.getTimeZone("Asia/Riyadh"));
    gp.setDateFormat(GlobalizationPreferences.DF_FULL, GlobalizationPreferences.DF_NONE, customFD);
    df = gp.getDateFormat(GlobalizationPreferences.DF_FULL, GlobalizationPreferences.DF_NONE);
    dfCal = df.getCalendar();
    if (!(dfCal instanceof IslamicCalendar)) {
        errln("FAIL: The DateFormat instance must use Islamic calendar");
    }
    // TimeZone in the custom DateFormat is overridden by GP's timezone setting
    tzid = df.getTimeZone().getID();
    if (!tzid.equals("America/Sao_Paulo")) {
        errln("FAIL: The DateFormat instance must use timezone America/Sao_Paulo");
    }
    // Freeze
    logln("Freeze this object");
    gp.freeze();
    DateFormat customLD = DateFormat.getDateInstance(new BuddhistCalendar(), DateFormat.LONG, new ULocale("th"));
    customLD.setTimeZone(TimeZone.getTimeZone("Asia/Bangkok"));
    boolean isFrozen = false;
    try {
        gp.setDateFormat(GlobalizationPreferences.DF_LONG, GlobalizationPreferences.DF_NONE, customLD);
    } catch (UnsupportedOperationException uoe) {
        logln("setDateFormat is blocked");
        isFrozen = true;
    }
    if (!isFrozen) {
        errln("FAIL: setDateFormat must be blocked after frozen");
    }
    // Modifiable clone
    logln("cloneAsThawed");
    GlobalizationPreferences gp1 = (GlobalizationPreferences) gp.cloneAsThawed();
    gp1.setDateFormat(GlobalizationPreferences.DF_LONG, GlobalizationPreferences.DF_NONE, customLD);
    df = gp1.getDateFormat(GlobalizationPreferences.DF_SHORT, GlobalizationPreferences.DF_SHORT);
    dfCal = df.getCalendar();
    if (!(dfCal instanceof JapaneseCalendar)) {
        errln("FAIL: The DateFormat instance must use Japanese calendar");
    }
    // TimeZone must be still America/Sao_Paulo
    tzid = df.getTimeZone().getID();
    if (!tzid.equals("America/Sao_Paulo")) {
        errln("FAIL: The DateFormat instance must use timezone America/Sao_Paulo");
    }
    df = gp1.getDateFormat(GlobalizationPreferences.DF_LONG, GlobalizationPreferences.DF_NONE);
    dfCal = df.getCalendar();
    if (!(dfCal instanceof BuddhistCalendar)) {
        errln("FAIL: The DateFormat instance must use Buddhist calendar");
    }
    // TimeZone must be still America/Sao_Paulo
    tzid = df.getTimeZone().getID();
    if (!tzid.equals("America/Sao_Paulo")) {
        errln("FAIL: The DateFormat instance must use timezone America/Sao_Paulo");
    }
}
Also used : GlobalizationPreferences(android.icu.util.GlobalizationPreferences) ULocale(android.icu.util.ULocale) IslamicCalendar(android.icu.util.IslamicCalendar) GregorianCalendar(android.icu.util.GregorianCalendar) BuddhistCalendar(android.icu.util.BuddhistCalendar) Calendar(android.icu.util.Calendar) JapaneseCalendar(android.icu.util.JapaneseCalendar) ArrayList(java.util.ArrayList) JapaneseCalendar(android.icu.util.JapaneseCalendar) TimeZone(android.icu.util.TimeZone) BuddhistCalendar(android.icu.util.BuddhistCalendar) DateFormat(android.icu.text.DateFormat) SimpleDateFormat(android.icu.text.SimpleDateFormat) IslamicCalendar(android.icu.util.IslamicCalendar) Test(org.junit.Test)

Example 2 with IslamicCalendar

use of android.icu.util.IslamicCalendar in project j2objc by google.

the class IslamicTest method Test7427.

@Test
public void Test7427() {
    // Test the add month in a leap year problem as reported in ticket #7427
    IslamicCalendar cal = new IslamicCalendar();
    cal.clear();
    cal.set(IslamicCalendar.YEAR, 1431);
    cal.set(IslamicCalendar.MONTH, IslamicCalendar.DHU_AL_HIJJAH);
    cal.add(IslamicCalendar.MONTH, 1);
    if (cal.get(IslamicCalendar.MONTH) != IslamicCalendar.MUHARRAM || (cal.get(IslamicCalendar.YEAR) != 1432)) {
        errln("Error incrementing month at the end of a leap year.  Expected Month:0 Year:1432 - Got Month:" + cal.get(IslamicCalendar.MONTH) + " Year:" + cal.get(IslamicCalendar.YEAR));
    }
}
Also used : IslamicCalendar(android.icu.util.IslamicCalendar) Test(org.junit.Test)

Example 3 with IslamicCalendar

use of android.icu.util.IslamicCalendar in project j2objc by google.

the class IslamicTest method TestIslamicUmAlQura.

@Test
public void TestIslamicUmAlQura() {
    class GregoUmmAlQuraMap {

        public int gYear;

        // 1-based
        public int gMon;

        public int gDay;

        public int uYear;

        // 1-based
        public int uMon;

        public int uDay;

        // Simple constructor
        public GregoUmmAlQuraMap(int gY, int gM, int gD, int uY, int uM, int uD) {
            gYear = gY;
            gMon = gM;
            gDay = gD;
            uYear = uY;
            uMon = uM;
            uDay = uD;
        }
    }
    ;
    // data from
    // Official Umm-al-Qura calendar of SA:
    // home, http://www.ummulqura.org.sa/default.aspx
    // converter, http://www.ummulqura.org.sa/Index.aspx
    final GregoUmmAlQuraMap[] guMappings = { // (using 1-based months here)
    new GregoUmmAlQuraMap(1882, 11, 12, 1300, 1, 1), new GregoUmmAlQuraMap(1892, 7, 25, 1310, 1, 1), new GregoUmmAlQuraMap(1896, 6, 12, 1314, 1, 1), new GregoUmmAlQuraMap(1898, 5, 22, 1316, 1, 1), new GregoUmmAlQuraMap(1900, 4, 30, 1318, 1, 1), new GregoUmmAlQuraMap(1901, 4, 20, 1319, 1, 1), new GregoUmmAlQuraMap(1902, 4, 10, 1320, 1, 1), new GregoUmmAlQuraMap(1903, 3, 30, 1321, 1, 1), new GregoUmmAlQuraMap(1904, 3, 19, 1322, 1, 1), new GregoUmmAlQuraMap(1905, 3, 8, 1323, 1, 1), new GregoUmmAlQuraMap(1906, 2, 25, 1324, 1, 1), new GregoUmmAlQuraMap(1907, 2, 14, 1325, 1, 1), new GregoUmmAlQuraMap(1908, 2, 4, 1326, 1, 1), new GregoUmmAlQuraMap(1909, 1, 23, 1327, 1, 1), new GregoUmmAlQuraMap(1910, 1, 13, 1328, 1, 1), new GregoUmmAlQuraMap(1911, 1, 2, 1329, 1, 1), new GregoUmmAlQuraMap(1911, 12, 22, 1330, 1, 1), new GregoUmmAlQuraMap(1912, 12, 10, 1331, 1, 1), new GregoUmmAlQuraMap(1913, 11, 30, 1332, 1, 1), new GregoUmmAlQuraMap(1914, 11, 19, 1333, 1, 1), new GregoUmmAlQuraMap(1915, 11, 9, 1334, 1, 1), new GregoUmmAlQuraMap(1916, 10, 28, 1335, 1, 1), new GregoUmmAlQuraMap(1917, 10, 18, 1336, 1, 1), new GregoUmmAlQuraMap(1918, 10, 7, 1337, 1, 1), new GregoUmmAlQuraMap(1919, 9, 26, 1338, 1, 1), new GregoUmmAlQuraMap(1920, 9, 14, 1339, 1, 1), new GregoUmmAlQuraMap(1921, 9, 4, 1340, 1, 1), new GregoUmmAlQuraMap(1922, 8, 24, 1341, 1, 1), new GregoUmmAlQuraMap(1923, 8, 14, 1342, 1, 1), new GregoUmmAlQuraMap(1924, 8, 2, 1343, 1, 1), new GregoUmmAlQuraMap(1925, 7, 22, 1344, 1, 1), new GregoUmmAlQuraMap(1926, 7, 11, 1345, 1, 1), new GregoUmmAlQuraMap(1927, 6, 30, 1346, 1, 1), new GregoUmmAlQuraMap(1928, 6, 19, 1347, 1, 1), new GregoUmmAlQuraMap(1929, 6, 9, 1348, 1, 1), new GregoUmmAlQuraMap(1930, 5, 29, 1349, 1, 1), new GregoUmmAlQuraMap(1931, 5, 19, 1350, 1, 1), new GregoUmmAlQuraMap(1932, 5, 7, 1351, 1, 1), new GregoUmmAlQuraMap(1933, 4, 26, 1352, 1, 1), new GregoUmmAlQuraMap(1934, 4, 15, 1353, 1, 1), new GregoUmmAlQuraMap(1935, 4, 5, 1354, 1, 1), new GregoUmmAlQuraMap(1936, 3, 24, 1355, 1, 1), new GregoUmmAlQuraMap(1937, 3, 14, 1356, 1, 1), new GregoUmmAlQuraMap(1938, 3, 4, 1357, 1, 1), new GregoUmmAlQuraMap(1939, 2, 21, 1358, 1, 1), new GregoUmmAlQuraMap(1940, 2, 10, 1359, 1, 1), new GregoUmmAlQuraMap(1941, 1, 29, 1360, 1, 1), new GregoUmmAlQuraMap(1942, 1, 18, 1361, 1, 1), new GregoUmmAlQuraMap(1943, 1, 8, 1362, 1, 1), new GregoUmmAlQuraMap(1943, 12, 28, 1363, 1, 1), new GregoUmmAlQuraMap(1944, 12, 17, 1364, 1, 1), new GregoUmmAlQuraMap(1945, 12, 6, 1365, 1, 1), new GregoUmmAlQuraMap(1946, 11, 25, 1366, 1, 1), new GregoUmmAlQuraMap(1947, 11, 14, 1367, 1, 1), new GregoUmmAlQuraMap(1948, 11, 3, 1368, 1, 1), new GregoUmmAlQuraMap(1949, 10, 23, 1369, 1, 1), new GregoUmmAlQuraMap(1950, 10, 13, 1370, 1, 1), new GregoUmmAlQuraMap(1951, 10, 3, 1371, 1, 1), new GregoUmmAlQuraMap(1952, 9, 21, 1372, 1, 1), new GregoUmmAlQuraMap(1953, 9, 10, 1373, 1, 1), new GregoUmmAlQuraMap(1954, 8, 30, 1374, 1, 1), new GregoUmmAlQuraMap(1955, 8, 19, 1375, 1, 1), new GregoUmmAlQuraMap(1956, 8, 8, 1376, 1, 1), new GregoUmmAlQuraMap(1957, 7, 29, 1377, 1, 1), new GregoUmmAlQuraMap(1958, 7, 18, 1378, 1, 1), new GregoUmmAlQuraMap(1959, 7, 8, 1379, 1, 1), new GregoUmmAlQuraMap(1960, 6, 26, 1380, 1, 1), new GregoUmmAlQuraMap(1961, 6, 15, 1381, 1, 1), new GregoUmmAlQuraMap(1962, 6, 4, 1382, 1, 1), new GregoUmmAlQuraMap(1963, 5, 24, 1383, 1, 1), new GregoUmmAlQuraMap(1964, 5, 13, 1384, 1, 1), new GregoUmmAlQuraMap(1965, 5, 3, 1385, 1, 1), new GregoUmmAlQuraMap(1966, 4, 22, 1386, 1, 1), new GregoUmmAlQuraMap(1967, 4, 11, 1387, 1, 1), new GregoUmmAlQuraMap(1968, 3, 30, 1388, 1, 1), new GregoUmmAlQuraMap(1969, 3, 19, 1389, 1, 1), new GregoUmmAlQuraMap(1970, 3, 9, 1390, 1, 1), new GregoUmmAlQuraMap(1971, 2, 27, 1391, 1, 1), new GregoUmmAlQuraMap(1972, 2, 16, 1392, 1, 1), new GregoUmmAlQuraMap(1973, 2, 5, 1393, 1, 1), new GregoUmmAlQuraMap(1974, 1, 25, 1394, 1, 1), new GregoUmmAlQuraMap(1975, 1, 14, 1395, 1, 1), new GregoUmmAlQuraMap(1976, 1, 3, 1396, 1, 1), new GregoUmmAlQuraMap(1976, 12, 22, 1397, 1, 1), new GregoUmmAlQuraMap(1977, 12, 12, 1398, 1, 1), new GregoUmmAlQuraMap(1978, 12, 1, 1399, 1, 1), new GregoUmmAlQuraMap(1979, 11, 21, 1400, 1, 1), new GregoUmmAlQuraMap(1980, 11, 9, 1401, 1, 1), new GregoUmmAlQuraMap(1981, 10, 29, 1402, 1, 1), new GregoUmmAlQuraMap(1982, 10, 18, 1403, 1, 1), new GregoUmmAlQuraMap(1983, 10, 8, 1404, 1, 1), new GregoUmmAlQuraMap(1984, 9, 26, 1405, 1, 1), new GregoUmmAlQuraMap(1985, 9, 16, 1406, 1, 1), new GregoUmmAlQuraMap(1986, 9, 6, 1407, 1, 1), new GregoUmmAlQuraMap(1987, 8, 26, 1408, 1, 1), new GregoUmmAlQuraMap(1988, 8, 14, 1409, 1, 1), new GregoUmmAlQuraMap(1989, 8, 3, 1410, 1, 1), new GregoUmmAlQuraMap(1990, 7, 23, 1411, 1, 1), new GregoUmmAlQuraMap(1991, 7, 13, 1412, 1, 1), new GregoUmmAlQuraMap(1992, 7, 2, 1413, 1, 1), new GregoUmmAlQuraMap(1993, 6, 21, 1414, 1, 1), new GregoUmmAlQuraMap(1994, 6, 11, 1415, 1, 1), new GregoUmmAlQuraMap(1995, 5, 31, 1416, 1, 1), new GregoUmmAlQuraMap(1996, 5, 19, 1417, 1, 1), new GregoUmmAlQuraMap(1997, 5, 8, 1418, 1, 1), new GregoUmmAlQuraMap(1998, 4, 28, 1419, 1, 1), new GregoUmmAlQuraMap(1999, 4, 17, 1420, 1, 1), new GregoUmmAlQuraMap(1999, 5, 16, 1420, 2, 1), new GregoUmmAlQuraMap(1999, 6, 15, 1420, 3, 1), new GregoUmmAlQuraMap(1999, 7, 14, 1420, 4, 1), new GregoUmmAlQuraMap(1999, 8, 12, 1420, 5, 1), new GregoUmmAlQuraMap(1999, 9, 11, 1420, 6, 1), new GregoUmmAlQuraMap(1999, 10, 10, 1420, 7, 1), new GregoUmmAlQuraMap(1999, 11, 9, 1420, 8, 1), new GregoUmmAlQuraMap(1999, 12, 9, 1420, 9, 1), new GregoUmmAlQuraMap(2000, 1, 8, 1420, 10, 1), new GregoUmmAlQuraMap(2000, 2, 7, 1420, 11, 1), new GregoUmmAlQuraMap(2000, 3, 7, 1420, 12, 1), new GregoUmmAlQuraMap(2000, 4, 6, 1421, 1, 1), new GregoUmmAlQuraMap(2000, 5, 5, 1421, 2, 1), new GregoUmmAlQuraMap(2000, 6, 3, 1421, 3, 1), new GregoUmmAlQuraMap(2000, 7, 3, 1421, 4, 1), new GregoUmmAlQuraMap(2000, 8, 1, 1421, 5, 1), new GregoUmmAlQuraMap(2000, 8, 30, 1421, 6, 1), new GregoUmmAlQuraMap(2000, 9, 28, 1421, 7, 1), new GregoUmmAlQuraMap(2000, 10, 28, 1421, 8, 1), new GregoUmmAlQuraMap(2000, 11, 27, 1421, 9, 1), new GregoUmmAlQuraMap(2000, 12, 27, 1421, 10, 1), new GregoUmmAlQuraMap(2001, 1, 26, 1421, 11, 1), new GregoUmmAlQuraMap(2001, 2, 24, 1421, 12, 1), new GregoUmmAlQuraMap(2001, 3, 26, 1422, 1, 1), new GregoUmmAlQuraMap(2001, 4, 25, 1422, 2, 1), new GregoUmmAlQuraMap(2001, 5, 24, 1422, 3, 1), new GregoUmmAlQuraMap(2001, 6, 22, 1422, 4, 1), new GregoUmmAlQuraMap(2001, 7, 22, 1422, 5, 1), new GregoUmmAlQuraMap(2001, 8, 20, 1422, 6, 1), new GregoUmmAlQuraMap(2001, 9, 18, 1422, 7, 1), new GregoUmmAlQuraMap(2001, 10, 17, 1422, 8, 1), new GregoUmmAlQuraMap(2001, 11, 16, 1422, 9, 1), new GregoUmmAlQuraMap(2001, 12, 16, 1422, 10, 1), new GregoUmmAlQuraMap(2002, 1, 15, 1422, 11, 1), new GregoUmmAlQuraMap(2002, 2, 13, 1422, 12, 1), new GregoUmmAlQuraMap(2002, 3, 15, 1423, 1, 1), new GregoUmmAlQuraMap(2002, 4, 14, 1423, 2, 1), new GregoUmmAlQuraMap(2002, 5, 13, 1423, 3, 1), new GregoUmmAlQuraMap(2002, 6, 12, 1423, 4, 1), new GregoUmmAlQuraMap(2002, 7, 11, 1423, 5, 1), new GregoUmmAlQuraMap(2002, 8, 10, 1423, 6, 1), new GregoUmmAlQuraMap(2002, 9, 8, 1423, 7, 1), new GregoUmmAlQuraMap(2002, 10, 7, 1423, 8, 1), new GregoUmmAlQuraMap(2002, 11, 6, 1423, 9, 1), new GregoUmmAlQuraMap(2002, 12, 5, 1423, 10, 1), new GregoUmmAlQuraMap(2003, 1, 4, 1423, 11, 1), new GregoUmmAlQuraMap(2003, 2, 2, 1423, 12, 1), new GregoUmmAlQuraMap(2003, 3, 4, 1424, 1, 1), new GregoUmmAlQuraMap(2003, 4, 3, 1424, 2, 1), new GregoUmmAlQuraMap(2003, 5, 2, 1424, 3, 1), new GregoUmmAlQuraMap(2003, 6, 1, 1424, 4, 1), new GregoUmmAlQuraMap(2003, 7, 1, 1424, 5, 1), new GregoUmmAlQuraMap(2003, 7, 30, 1424, 6, 1), new GregoUmmAlQuraMap(2003, 8, 29, 1424, 7, 1), new GregoUmmAlQuraMap(2003, 9, 27, 1424, 8, 1), new GregoUmmAlQuraMap(2003, 10, 26, 1424, 9, 1), new GregoUmmAlQuraMap(2003, 11, 25, 1424, 10, 1), new GregoUmmAlQuraMap(2003, 12, 24, 1424, 11, 1), new GregoUmmAlQuraMap(2004, 1, 23, 1424, 12, 1), new GregoUmmAlQuraMap(2004, 2, 21, 1425, 1, 1), new GregoUmmAlQuraMap(2004, 3, 22, 1425, 2, 1), new GregoUmmAlQuraMap(2004, 4, 20, 1425, 3, 1), new GregoUmmAlQuraMap(2004, 5, 20, 1425, 4, 1), new GregoUmmAlQuraMap(2004, 6, 19, 1425, 5, 1), new GregoUmmAlQuraMap(2004, 7, 18, 1425, 6, 1), new GregoUmmAlQuraMap(2004, 8, 17, 1425, 7, 1), new GregoUmmAlQuraMap(2004, 9, 15, 1425, 8, 1), new GregoUmmAlQuraMap(2004, 10, 15, 1425, 9, 1), new GregoUmmAlQuraMap(2004, 11, 14, 1425, 10, 1), new GregoUmmAlQuraMap(2004, 12, 13, 1425, 11, 1), new GregoUmmAlQuraMap(2005, 1, 12, 1425, 12, 1), new GregoUmmAlQuraMap(2005, 2, 10, 1426, 1, 1), new GregoUmmAlQuraMap(2005, 3, 11, 1426, 2, 1), new GregoUmmAlQuraMap(2005, 4, 10, 1426, 3, 1), new GregoUmmAlQuraMap(2005, 5, 9, 1426, 4, 1), new GregoUmmAlQuraMap(2005, 6, 8, 1426, 5, 1), new GregoUmmAlQuraMap(2005, 7, 7, 1426, 6, 1), new GregoUmmAlQuraMap(2005, 8, 6, 1426, 7, 1), new GregoUmmAlQuraMap(2005, 9, 5, 1426, 8, 1), new GregoUmmAlQuraMap(2005, 10, 4, 1426, 9, 1), new GregoUmmAlQuraMap(2005, 11, 3, 1426, 10, 1), new GregoUmmAlQuraMap(2005, 12, 3, 1426, 11, 1), new GregoUmmAlQuraMap(2006, 1, 1, 1426, 12, 1), new GregoUmmAlQuraMap(2006, 1, 31, 1427, 1, 1), new GregoUmmAlQuraMap(2006, 3, 1, 1427, 2, 1), new GregoUmmAlQuraMap(2006, 3, 30, 1427, 3, 1), new GregoUmmAlQuraMap(2006, 4, 29, 1427, 4, 1), new GregoUmmAlQuraMap(2006, 5, 28, 1427, 5, 1), new GregoUmmAlQuraMap(2006, 6, 27, 1427, 6, 1), new GregoUmmAlQuraMap(2006, 7, 26, 1427, 7, 1), new GregoUmmAlQuraMap(2006, 8, 25, 1427, 8, 1), new GregoUmmAlQuraMap(2006, 9, 24, 1427, 9, 1), new GregoUmmAlQuraMap(2006, 10, 23, 1427, 10, 1), new GregoUmmAlQuraMap(2006, 11, 22, 1427, 11, 1), new GregoUmmAlQuraMap(2006, 12, 22, 1427, 12, 1), new GregoUmmAlQuraMap(2007, 1, 20, 1428, 1, 1), new GregoUmmAlQuraMap(2007, 2, 19, 1428, 2, 1), new GregoUmmAlQuraMap(2007, 3, 20, 1428, 3, 1), new GregoUmmAlQuraMap(2007, 4, 18, 1428, 4, 1), new GregoUmmAlQuraMap(2007, 5, 18, 1428, 5, 1), new GregoUmmAlQuraMap(2007, 6, 16, 1428, 6, 1), new GregoUmmAlQuraMap(2007, 7, 15, 1428, 7, 1), new GregoUmmAlQuraMap(2007, 8, 14, 1428, 8, 1), new GregoUmmAlQuraMap(2007, 9, 13, 1428, 9, 1), new GregoUmmAlQuraMap(2007, 10, 13, 1428, 10, 1), new GregoUmmAlQuraMap(2007, 11, 11, 1428, 11, 1), new GregoUmmAlQuraMap(2007, 12, 11, 1428, 12, 1), new GregoUmmAlQuraMap(2008, 1, 10, 1429, 1, 1), new GregoUmmAlQuraMap(2008, 2, 8, 1429, 2, 1), new GregoUmmAlQuraMap(2008, 3, 9, 1429, 3, 1), new GregoUmmAlQuraMap(2008, 4, 7, 1429, 4, 1), new GregoUmmAlQuraMap(2008, 5, 6, 1429, 5, 1), new GregoUmmAlQuraMap(2008, 6, 5, 1429, 6, 1), new GregoUmmAlQuraMap(2008, 7, 4, 1429, 7, 1), new GregoUmmAlQuraMap(2008, 8, 2, 1429, 8, 1), new GregoUmmAlQuraMap(2008, 9, 1, 1429, 9, 1), new GregoUmmAlQuraMap(2008, 10, 1, 1429, 10, 1), new GregoUmmAlQuraMap(2008, 10, 30, 1429, 11, 1), new GregoUmmAlQuraMap(2008, 11, 29, 1429, 12, 1), new GregoUmmAlQuraMap(2008, 12, 29, 1430, 1, 1), new GregoUmmAlQuraMap(2009, 1, 27, 1430, 2, 1), new GregoUmmAlQuraMap(2009, 2, 26, 1430, 3, 1), new GregoUmmAlQuraMap(2009, 3, 28, 1430, 4, 1), new GregoUmmAlQuraMap(2009, 4, 26, 1430, 5, 1), new GregoUmmAlQuraMap(2009, 5, 25, 1430, 6, 1), new GregoUmmAlQuraMap(2009, 6, 24, 1430, 7, 1), new GregoUmmAlQuraMap(2009, 7, 23, 1430, 8, 1), new GregoUmmAlQuraMap(2009, 8, 22, 1430, 9, 1), new GregoUmmAlQuraMap(2009, 9, 20, 1430, 10, 1), new GregoUmmAlQuraMap(2009, 10, 20, 1430, 11, 1), new GregoUmmAlQuraMap(2009, 11, 18, 1430, 12, 1), new GregoUmmAlQuraMap(2009, 12, 18, 1431, 1, 1), new GregoUmmAlQuraMap(2010, 1, 16, 1431, 2, 1), new GregoUmmAlQuraMap(2010, 2, 15, 1431, 3, 1), new GregoUmmAlQuraMap(2010, 3, 17, 1431, 4, 1), new GregoUmmAlQuraMap(2010, 4, 15, 1431, 5, 1), new GregoUmmAlQuraMap(2010, 5, 15, 1431, 6, 1), new GregoUmmAlQuraMap(2010, 6, 13, 1431, 7, 1), new GregoUmmAlQuraMap(2010, 7, 13, 1431, 8, 1), new GregoUmmAlQuraMap(2010, 8, 11, 1431, 9, 1), new GregoUmmAlQuraMap(2010, 9, 10, 1431, 10, 1), new GregoUmmAlQuraMap(2010, 10, 9, 1431, 11, 1), new GregoUmmAlQuraMap(2010, 11, 7, 1431, 12, 1), new GregoUmmAlQuraMap(2010, 12, 7, 1432, 1, 1), new GregoUmmAlQuraMap(2011, 1, 5, 1432, 2, 1), new GregoUmmAlQuraMap(2011, 2, 4, 1432, 3, 1), new GregoUmmAlQuraMap(2011, 3, 6, 1432, 4, 1), new GregoUmmAlQuraMap(2011, 4, 5, 1432, 5, 1), new GregoUmmAlQuraMap(2011, 5, 4, 1432, 6, 1), new GregoUmmAlQuraMap(2011, 6, 3, 1432, 7, 1), new GregoUmmAlQuraMap(2011, 7, 2, 1432, 8, 1), new GregoUmmAlQuraMap(2011, 8, 1, 1432, 9, 1), new GregoUmmAlQuraMap(2011, 8, 30, 1432, 10, 1), new GregoUmmAlQuraMap(2011, 9, 29, 1432, 11, 1), new GregoUmmAlQuraMap(2011, 10, 28, 1432, 12, 1), new GregoUmmAlQuraMap(2011, 11, 26, 1433, 1, 1), new GregoUmmAlQuraMap(2011, 12, 26, 1433, 2, 1), new GregoUmmAlQuraMap(2012, 1, 24, 1433, 3, 1), new GregoUmmAlQuraMap(2012, 2, 23, 1433, 4, 1), new GregoUmmAlQuraMap(2012, 3, 24, 1433, 5, 1), new GregoUmmAlQuraMap(2012, 4, 22, 1433, 6, 1), new GregoUmmAlQuraMap(2012, 5, 22, 1433, 7, 1), new GregoUmmAlQuraMap(2012, 6, 21, 1433, 8, 1), new GregoUmmAlQuraMap(2012, 7, 20, 1433, 9, 1), new GregoUmmAlQuraMap(2012, 8, 19, 1433, 10, 1), new GregoUmmAlQuraMap(2012, 9, 17, 1433, 11, 1), new GregoUmmAlQuraMap(2012, 10, 17, 1433, 12, 1), new GregoUmmAlQuraMap(2012, 11, 15, 1434, 1, 1), new GregoUmmAlQuraMap(2012, 12, 14, 1434, 2, 1), new GregoUmmAlQuraMap(2013, 1, 13, 1434, 3, 1), new GregoUmmAlQuraMap(2013, 2, 11, 1434, 4, 1), new GregoUmmAlQuraMap(2013, 3, 13, 1434, 5, 1), new GregoUmmAlQuraMap(2013, 4, 11, 1434, 6, 1), new GregoUmmAlQuraMap(2013, 5, 11, 1434, 7, 1), new GregoUmmAlQuraMap(2013, 6, 10, 1434, 8, 1), new GregoUmmAlQuraMap(2013, 7, 9, 1434, 9, 1), new GregoUmmAlQuraMap(2013, 8, 8, 1434, 10, 1), new GregoUmmAlQuraMap(2013, 9, 7, 1434, 11, 1), new GregoUmmAlQuraMap(2013, 10, 6, 1434, 12, 1), new GregoUmmAlQuraMap(2013, 11, 4, 1435, 1, 1), new GregoUmmAlQuraMap(2013, 12, 4, 1435, 2, 1), new GregoUmmAlQuraMap(2014, 1, 2, 1435, 3, 1), new GregoUmmAlQuraMap(2014, 2, 1, 1435, 4, 1), new GregoUmmAlQuraMap(2014, 3, 2, 1435, 5, 1), new GregoUmmAlQuraMap(2014, 4, 1, 1435, 6, 1), new GregoUmmAlQuraMap(2014, 4, 30, 1435, 7, 1), new GregoUmmAlQuraMap(2014, 5, 30, 1435, 8, 1), new GregoUmmAlQuraMap(2014, 6, 28, 1435, 9, 1), new GregoUmmAlQuraMap(2014, 7, 28, 1435, 10, 1), new GregoUmmAlQuraMap(2014, 8, 27, 1435, 11, 1), new GregoUmmAlQuraMap(2014, 9, 25, 1435, 12, 1), new GregoUmmAlQuraMap(2014, 10, 25, 1436, 1, 1), new GregoUmmAlQuraMap(2014, 11, 23, 1436, 2, 1), new GregoUmmAlQuraMap(2014, 12, 23, 1436, 3, 1), new GregoUmmAlQuraMap(2015, 1, 21, 1436, 4, 1), new GregoUmmAlQuraMap(2015, 2, 20, 1436, 5, 1), new GregoUmmAlQuraMap(2015, 3, 21, 1436, 6, 1), new GregoUmmAlQuraMap(2015, 4, 20, 1436, 7, 1), new GregoUmmAlQuraMap(2015, 5, 19, 1436, 8, 1), new GregoUmmAlQuraMap(2015, 6, 18, 1436, 9, 1), new GregoUmmAlQuraMap(2015, 7, 17, 1436, 10, 1), new GregoUmmAlQuraMap(2015, 8, 16, 1436, 11, 1), new GregoUmmAlQuraMap(2015, 9, 14, 1436, 12, 1), new GregoUmmAlQuraMap(2015, 10, 14, 1437, 1, 1), new GregoUmmAlQuraMap(2015, 11, 13, 1437, 2, 1), new GregoUmmAlQuraMap(2015, 12, 12, 1437, 3, 1), new GregoUmmAlQuraMap(2016, 1, 11, 1437, 4, 1), new GregoUmmAlQuraMap(2016, 2, 10, 1437, 5, 1), new GregoUmmAlQuraMap(2016, 3, 10, 1437, 6, 1), new GregoUmmAlQuraMap(2016, 4, 8, 1437, 7, 1), new GregoUmmAlQuraMap(2016, 5, 8, 1437, 8, 1), new GregoUmmAlQuraMap(2016, 6, 6, 1437, 9, 1), new GregoUmmAlQuraMap(2016, 7, 6, 1437, 10, 1), new GregoUmmAlQuraMap(2016, 8, 4, 1437, 11, 1), new GregoUmmAlQuraMap(2016, 9, 2, 1437, 12, 1), new GregoUmmAlQuraMap(2016, 10, 2, 1438, 1, 1), new GregoUmmAlQuraMap(2016, 11, 1, 1438, 2, 1), new GregoUmmAlQuraMap(2016, 11, 30, 1438, 3, 1), new GregoUmmAlQuraMap(2016, 12, 30, 1438, 4, 1), new GregoUmmAlQuraMap(2017, 1, 29, 1438, 5, 1), new GregoUmmAlQuraMap(2017, 2, 28, 1438, 6, 1), new GregoUmmAlQuraMap(2017, 3, 29, 1438, 7, 1), new GregoUmmAlQuraMap(2017, 4, 27, 1438, 8, 1), new GregoUmmAlQuraMap(2017, 5, 27, 1438, 9, 1), new GregoUmmAlQuraMap(2017, 6, 25, 1438, 10, 1), new GregoUmmAlQuraMap(2017, 7, 24, 1438, 11, 1), new GregoUmmAlQuraMap(2017, 8, 23, 1438, 12, 1), new GregoUmmAlQuraMap(2017, 9, 21, 1439, 1, 1), new GregoUmmAlQuraMap(2017, 10, 21, 1439, 2, 1), new GregoUmmAlQuraMap(2017, 11, 19, 1439, 3, 1), new GregoUmmAlQuraMap(2017, 12, 19, 1439, 4, 1), new GregoUmmAlQuraMap(2018, 1, 18, 1439, 5, 1), new GregoUmmAlQuraMap(2018, 2, 17, 1439, 6, 1), new GregoUmmAlQuraMap(2018, 3, 18, 1439, 7, 1), new GregoUmmAlQuraMap(2018, 4, 17, 1439, 8, 1), new GregoUmmAlQuraMap(2018, 5, 16, 1439, 9, 1), new GregoUmmAlQuraMap(2018, 6, 15, 1439, 10, 1), new GregoUmmAlQuraMap(2018, 7, 14, 1439, 11, 1), new GregoUmmAlQuraMap(2018, 8, 12, 1439, 12, 1), new GregoUmmAlQuraMap(2018, 9, 11, 1440, 1, 1), new GregoUmmAlQuraMap(2019, 8, 31, 1441, 1, 1), new GregoUmmAlQuraMap(2020, 8, 20, 1442, 1, 1), new GregoUmmAlQuraMap(2021, 8, 9, 1443, 1, 1), new GregoUmmAlQuraMap(2022, 7, 30, 1444, 1, 1), new GregoUmmAlQuraMap(2023, 7, 19, 1445, 1, 1), new GregoUmmAlQuraMap(2024, 7, 7, 1446, 1, 1), new GregoUmmAlQuraMap(2025, 6, 26, 1447, 1, 1), new GregoUmmAlQuraMap(2026, 6, 16, 1448, 1, 1), new GregoUmmAlQuraMap(2027, 6, 6, 1449, 1, 1), new GregoUmmAlQuraMap(2028, 5, 25, 1450, 1, 1), new GregoUmmAlQuraMap(2029, 5, 14, 1451, 1, 1), new GregoUmmAlQuraMap(2030, 5, 4, 1452, 1, 1), new GregoUmmAlQuraMap(2031, 4, 23, 1453, 1, 1), new GregoUmmAlQuraMap(2032, 4, 11, 1454, 1, 1), new GregoUmmAlQuraMap(2033, 4, 1, 1455, 1, 1), new GregoUmmAlQuraMap(2034, 3, 22, 1456, 1, 1), new GregoUmmAlQuraMap(2035, 3, 11, 1457, 1, 1), new GregoUmmAlQuraMap(2036, 2, 29, 1458, 1, 1), new GregoUmmAlQuraMap(2037, 2, 17, 1459, 1, 1), new GregoUmmAlQuraMap(2038, 2, 6, 1460, 1, 1), new GregoUmmAlQuraMap(2039, 1, 26, 1461, 1, 1), new GregoUmmAlQuraMap(2040, 1, 15, 1462, 1, 1), new GregoUmmAlQuraMap(2041, 1, 4, 1463, 1, 1), new GregoUmmAlQuraMap(2041, 12, 25, 1464, 1, 1), new GregoUmmAlQuraMap(2042, 12, 14, 1465, 1, 1), new GregoUmmAlQuraMap(2043, 12, 3, 1466, 1, 1), new GregoUmmAlQuraMap(2044, 11, 21, 1467, 1, 1), new GregoUmmAlQuraMap(2045, 11, 11, 1468, 1, 1), new GregoUmmAlQuraMap(2046, 10, 31, 1469, 1, 1), new GregoUmmAlQuraMap(2047, 10, 21, 1470, 1, 1), new GregoUmmAlQuraMap(2048, 10, 9, 1471, 1, 1), new GregoUmmAlQuraMap(2049, 9, 29, 1472, 1, 1), new GregoUmmAlQuraMap(2050, 9, 18, 1473, 1, 1), new GregoUmmAlQuraMap(2051, 9, 7, 1474, 1, 1), new GregoUmmAlQuraMap(2052, 8, 26, 1475, 1, 1), new GregoUmmAlQuraMap(2053, 8, 15, 1476, 1, 1), new GregoUmmAlQuraMap(2054, 8, 5, 1477, 1, 1), new GregoUmmAlQuraMap(2055, 7, 26, 1478, 1, 1), new GregoUmmAlQuraMap(2056, 7, 14, 1479, 1, 1), new GregoUmmAlQuraMap(2057, 7, 3, 1480, 1, 1), new GregoUmmAlQuraMap(2058, 6, 22, 1481, 1, 1), new GregoUmmAlQuraMap(2059, 6, 11, 1482, 1, 1), new GregoUmmAlQuraMap(2061, 5, 21, 1484, 1, 1), new GregoUmmAlQuraMap(2063, 4, 30, 1486, 1, 1), new GregoUmmAlQuraMap(2065, 4, 7, 1488, 1, 1), new GregoUmmAlQuraMap(2067, 3, 17, 1490, 1, 1), new GregoUmmAlQuraMap(2069, 2, 23, 1492, 1, 1), new GregoUmmAlQuraMap(2071, 2, 2, 1494, 1, 1), new GregoUmmAlQuraMap(2073, 1, 10, 1496, 1, 1), new GregoUmmAlQuraMap(2074, 12, 20, 1498, 1, 1), new GregoUmmAlQuraMap(2076, 11, 28, 1500, 1, 1) };
    int firstYear = 1318;
    // *  use either 1 or 2 leading slashes to toggle
    // just enough to be pretty sure
    int lastYear = 1368;
    /*/
        int lastYear = 1480;    // the whole shootin' match
        //*/
    ULocale umalquraLoc = new ULocale("ar_SA@calendar=islamic-umalqura");
    ULocale gregoLoc = new ULocale("ar_SA@calendar=gregorian");
    TimeZone tzSA = TimeZone.getTimeZone("Asia/Riyadh");
    IslamicCalendar tstCal = new IslamicCalendar(tzSA, umalquraLoc);
    GregorianCalendar gregCal = new GregorianCalendar(tzSA, gregoLoc);
    tstCal.clear();
    tstCal.setLenient(false);
    int day = 0, month = 0, year = 0, initDay = 27, initMonth = IslamicCalendar.RAJAB, initYear = 1434;
    try {
        for (int startYear = firstYear; startYear <= lastYear; startYear++) {
            setAndTestWholeYear(tstCal, startYear);
        }
    } catch (Throwable t) {
        errln("unexpected exception thrown - message=" + t.getLocalizedMessage());
    }
    try {
        initMonth = IslamicCalendar.RABI_2;
        initDay = 5;
        int loopCnt = 25;
        tstCal.clear();
        setAndTestCalendar(tstCal, initMonth, initDay, initYear);
        for (int x = 1; x <= loopCnt; x++) {
            day = tstCal.get(Calendar.DAY_OF_MONTH);
            month = tstCal.get(Calendar.MONTH);
            year = tstCal.get(Calendar.YEAR);
            tstCal.roll(Calendar.DAY_OF_MONTH, true);
        }
        if (day != (initDay + loopCnt - 1) || month != IslamicCalendar.RABI_2 || year != 1434)
            errln("invalid values for RABI_2 date after roll of " + loopCnt);
    } catch (IllegalArgumentException iae) {
        errln("unexpected exception received!!!");
    }
    try {
        tstCal.clear();
        initMonth = 2;
        initDay = 30;
        setAndTestCalendar(tstCal, initMonth, initDay, initYear);
        errln("expected exception NOT thrown");
    } catch (IllegalArgumentException iae) {
    // expected this
    }
    try {
        tstCal.clear();
        initMonth = 3;
        initDay = 30;
        setAndTestCalendar(tstCal, initMonth, initDay, initYear);
    } catch (IllegalArgumentException iae) {
        errln("unexpected exception received!!!");
    }
    try {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
        Date date = formatter.parse("1975-05-06");
        IslamicCalendar is_cal = new IslamicCalendar();
        is_cal.setCalculationType(CalculationType.ISLAMIC_UMALQURA);
        is_cal.setTime(date);
        SimpleDateFormat formatterIslamic = (SimpleDateFormat) is_cal.getDateTimeFormat(0, 0, umalquraLoc);
        formatterIslamic.applyPattern("yyyy-MMMM-dd");
        String str = formatterIslamic.format(is_cal.getTime());
        // 1395 - Rabi - 24
        int is_day = is_cal.get(Calendar.DAY_OF_MONTH);
        int is_month = is_cal.get(Calendar.MONTH);
        int is_year = is_cal.get(Calendar.YEAR);
        if (is_day != 24 || is_month != IslamicCalendar.RABI_2 || is_year != 1395)
            errln("unexpected conversion date: " + is_day + " " + is_month + " " + is_year);
        String expectedFormatResult = "\u0661\u0663\u0669\u0665-\u0631\u0628\u064A\u0639 \u0627\u0644\u0622\u062E\u0631-\u0662\u0664";
        if (!str.equals(expectedFormatResult))
            errln("unexpected formatted result: " + str);
    } catch (Exception e) {
        errln(e.getLocalizedMessage());
    }
    // check against data
    gregCal.clear();
    tstCal.clear();
    for (GregoUmmAlQuraMap guMap : guMappings) {
        gregCal.set(guMap.gYear, guMap.gMon - 1, guMap.gDay, 12, 0);
        long mapDate = gregCal.getTimeInMillis();
        tstCal.setTimeInMillis(mapDate);
        int uYear = tstCal.get(Calendar.YEAR);
        int uMon = tstCal.get(Calendar.MONTH) + 1;
        int uDay = tstCal.get(Calendar.DATE);
        if (uYear != guMap.uYear || uMon != guMap.uMon || uDay != guMap.uDay) {
            errln("For gregorian " + guMap.gYear + "-" + guMap.gMon + "-" + guMap.gDay + ", expect umalqura " + guMap.uYear + "-" + guMap.uMon + "-" + guMap.uDay + ", get " + uYear + "-" + uMon + "-" + uDay);
        }
    }
}
Also used : ULocale(android.icu.util.ULocale) GregorianCalendar(android.icu.util.GregorianCalendar) Date(java.util.Date) IOException(java.io.IOException) TimeZone(android.icu.util.TimeZone) SimpleDateFormat(android.icu.text.SimpleDateFormat) IslamicCalendar(android.icu.util.IslamicCalendar) Test(org.junit.Test)

Example 4 with IslamicCalendar

use of android.icu.util.IslamicCalendar in project j2objc by google.

the class IslamicTest method TestLimits.

/**
 * Test limits of the Islamic calendar
 */
@Test
public void TestLimits() {
    Calendar cal = Calendar.getInstance();
    cal.set(2007, Calendar.JANUARY, 1);
    IslamicCalendar islamic = newCivil();
    doLimitsTest(islamic, null, cal.getTime());
    doTheoreticalLimitsTest(islamic, true);
    // number of days to test - Islamic calendar starts to exhibit
    // rounding errors after year AH3954 - about 2500 years out.
    IslamicCalendar islamic2 = new IslamicCalendar();
    islamic2.setCalculationType(CalculationType.ISLAMIC);
    int testTime = TestFmwk.getExhaustiveness() <= 5 ? 20000 : 800000;
    doLimitsTest(islamic2, null, cal.getTime(), testTime);
    doTheoreticalLimitsTest(islamic2, true);
}
Also used : IslamicCalendar(android.icu.util.IslamicCalendar) GregorianCalendar(android.icu.util.GregorianCalendar) Calendar(android.icu.util.Calendar) IslamicCalendar(android.icu.util.IslamicCalendar) Test(org.junit.Test)

Example 5 with IslamicCalendar

use of android.icu.util.IslamicCalendar in project j2objc by google.

the class IslamicTest method newIslamic.

private static IslamicCalendar newIslamic() {
    IslamicCalendar civilCalendar = new IslamicCalendar();
    civilCalendar.setCalculationType(CalculationType.ISLAMIC);
    return civilCalendar;
}
Also used : IslamicCalendar(android.icu.util.IslamicCalendar)

Aggregations

IslamicCalendar (android.icu.util.IslamicCalendar)17 Test (org.junit.Test)14 GregorianCalendar (android.icu.util.GregorianCalendar)7 ULocale (android.icu.util.ULocale)7 SimpleDateFormat (android.icu.text.SimpleDateFormat)6 Calendar (android.icu.util.Calendar)5 JapaneseCalendar (android.icu.util.JapaneseCalendar)4 Date (java.util.Date)4 DateFormat (android.icu.text.DateFormat)3 BuddhistCalendar (android.icu.util.BuddhistCalendar)3 TimeZone (android.icu.util.TimeZone)3 IOException (java.io.IOException)3 GlobalizationPreferences (android.icu.util.GlobalizationPreferences)2 Locale (java.util.Locale)2 ChineseDateFormat (android.icu.text.ChineseDateFormat)1 ChineseCalendar (android.icu.util.ChineseCalendar)1 HebrewCalendar (android.icu.util.HebrewCalendar)1 ByteArrayInputStream (java.io.ByteArrayInputStream)1 ByteArrayOutputStream (java.io.ByteArrayOutputStream)1 ObjectInputStream (java.io.ObjectInputStream)1