1cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath/* 2cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Licensed to the Apache Software Foundation (ASF) under one or more 3cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * contributor license agreements. See the NOTICE file distributed with 4cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * this work for additional information regarding copyright ownership. 5cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * The ASF licenses this file to You under the Apache License, Version 2.0 6cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * (the "License"); you may not use this file except in compliance with 7cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * the License. You may obtain a copy of the License at 8cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * 9cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * http://www.apache.org/licenses/LICENSE-2.0 10cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * 11cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Unless required by applicable law or agreed to in writing, software 12cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * distributed under the License is distributed on an "AS IS" BASIS, 13cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * See the License for the specific language governing permissions and 15cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * limitations under the License. 16cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 17cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 18ab762bb740405d0fefcccf4a0899a234f995be13Narayan Kamathpackage org.apache.harmony.tests.java.util; 19cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 20cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.BitSet; 21cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.Calendar; 22cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.Date; 23cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.GregorianCalendar; 24cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.Locale; 25cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.SimpleTimeZone; 26cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.TimeZone; 27cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.Vector; 28cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 29cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathpublic class GregorianCalendarTest extends junit.framework.TestCase { 30cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 31cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static final TimeZone AMERICA_CHICAGO = TimeZone.getTimeZone("America/Chicago"); 32cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static final TimeZone AMERICA_NEW_YORK = TimeZone.getTimeZone("America/New_York"); 33cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3441a3d4230837b1987538578a10b365d7f0c9ca13Neil Fuller private Locale defaultLocale; 3541a3d4230837b1987538578a10b365d7f0c9ca13Neil Fuller 3641a3d4230837b1987538578a10b365d7f0c9ca13Neil Fuller @Override 3741a3d4230837b1987538578a10b365d7f0c9ca13Neil Fuller public void setUp() throws Exception { 3841a3d4230837b1987538578a10b365d7f0c9ca13Neil Fuller super.setUp(); 3941a3d4230837b1987538578a10b365d7f0c9ca13Neil Fuller defaultLocale = Locale.getDefault(); 403819290afba2199d4ddf5da88e5b3717b59863f6Neil Fuller // Most tests are locale independent, but locale does affect start-of-week. 413819290afba2199d4ddf5da88e5b3717b59863f6Neil Fuller Locale.setDefault(Locale.US); 4241a3d4230837b1987538578a10b365d7f0c9ca13Neil Fuller } 4341a3d4230837b1987538578a10b365d7f0c9ca13Neil Fuller 4441a3d4230837b1987538578a10b365d7f0c9ca13Neil Fuller @Override 4541a3d4230837b1987538578a10b365d7f0c9ca13Neil Fuller public void tearDown() throws Exception { 4641a3d4230837b1987538578a10b365d7f0c9ca13Neil Fuller Locale.setDefault(defaultLocale); 4741a3d4230837b1987538578a10b365d7f0c9ca13Neil Fuller super.tearDown(); 4841a3d4230837b1987538578a10b365d7f0c9ca13Neil Fuller } 4941a3d4230837b1987538578a10b365d7f0c9ca13Neil Fuller 50cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 51cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.GregorianCalendar#GregorianCalendar() 52cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 53cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_Constructor() { 54cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.util.GregorianCalendar() 55cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Constructed incorrect calendar", (new GregorianCalendar() 56cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .isLenient())); 57cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 58cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 59cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 60cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.GregorianCalendar#GregorianCalendar(int, int, int) 61cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 62cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorIII() { 63cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.util.GregorianCalendar(int, int, int) 64cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gc = new GregorianCalendar(1972, Calendar.OCTOBER, 13); 65cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect calendar constructed 1", 66cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1972, gc.get(Calendar.YEAR)); 67cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Incorrect calendar constructed 2", 68cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc.get(Calendar.MONTH) == Calendar.OCTOBER); 69cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect calendar constructed 3", 13, gc 70cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .get(Calendar.DAY_OF_MONTH)); 71cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Incorrect calendar constructed 4", gc.getTimeZone().equals( 72cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath TimeZone.getDefault())); 73cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 74cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 75cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 76cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.GregorianCalendar#GregorianCalendar(int, int, int, int, 77cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath *int) 78cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 79cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorIIIII() { 80cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.util.GregorianCalendar(int, int, int, int, int) 81cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gc = new GregorianCalendar(1972, Calendar.OCTOBER, 82cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 13, 19, 9); 83cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect calendar constructed", 84cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1972, gc.get(Calendar.YEAR)); 85cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Incorrect calendar constructed", 86cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc.get(Calendar.MONTH) == Calendar.OCTOBER); 87cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect calendar constructed", 13, gc 88cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .get(Calendar.DAY_OF_MONTH)); 89cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect calendar constructed", 7, gc.get(Calendar.HOUR)); 90cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect calendar constructed", 91cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1, gc.get(Calendar.AM_PM)); 92cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect calendar constructed", 93cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 9, gc.get(Calendar.MINUTE)); 94cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Incorrect calendar constructed", gc.getTimeZone().equals( 95cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath TimeZone.getDefault())); 96cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 97cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath //Regression for HARMONY-998 98cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc = new GregorianCalendar(1900, 0, 0, 0, Integer.MAX_VALUE); 99cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect calendar constructed", 100cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 5983, gc.get(Calendar.YEAR)); 101cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 102cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 103cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 104cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.GregorianCalendar#GregorianCalendar(int, int, int, int, 105cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath *int, int) 106cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 107cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorIIIIII() { 108cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.util.GregorianCalendar(int, int, int, int, int, 109cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // int) 110cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gc = new GregorianCalendar(1972, Calendar.OCTOBER, 111cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 13, 19, 9, 59); 112cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect calendar constructed", 113cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1972, gc.get(Calendar.YEAR)); 114cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Incorrect calendar constructed", 115cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc.get(Calendar.MONTH) == Calendar.OCTOBER); 116cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect calendar constructed", 13, gc 117cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .get(Calendar.DAY_OF_MONTH)); 118cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect calendar constructed", 7, gc.get(Calendar.HOUR)); 119cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect calendar constructed", 120cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1, gc.get(Calendar.AM_PM)); 121cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect calendar constructed", 122cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 9, gc.get(Calendar.MINUTE)); 123cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect calendar constructed", 124cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 59, gc.get(Calendar.SECOND)); 125cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Incorrect calendar constructed", gc.getTimeZone().equals( 126cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath TimeZone.getDefault())); 127cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 128cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 129cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 130cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.GregorianCalendar#GregorianCalendar(java.util.Locale) 131cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 132cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorLjava_util_Locale() { 133cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.util.GregorianCalendar(java.util.Locale) 134cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Date date = new Date(); 135cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gcJapan = new GregorianCalendar(Locale.JAPAN); 136cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gcJapan.setTime(date); 137cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gcJapan2 = new GregorianCalendar(Locale.JAPAN); 138cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gcJapan2.setTime(date); 139cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gcItaly = new GregorianCalendar(Locale.ITALY); 140cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gcItaly.setTime(date); 141cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Locales not created correctly", gcJapan.equals(gcJapan2) 142cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath && !gcJapan.equals(gcItaly)); 143cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 144cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 145cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 146cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.GregorianCalendar#GregorianCalendar(java.util.TimeZone) 147cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 148cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorLjava_util_TimeZone() { 149cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.util.GregorianCalendar(java.util.TimeZone) 150cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Date date = new Date(2008, 1, 1); 151cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath TimeZone.getDefault(); 152cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gc1 = new GregorianCalendar(AMERICA_NEW_YORK); 153cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.setTime(date); 154cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gc2 = new GregorianCalendar(AMERICA_CHICAGO); 155cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc2.setTime(date); 156cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Chicago is 1 hour before New York, add 1 to the Chicago time and convert to 0-12 value 157cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect calendar returned", 158cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.get(Calendar.HOUR), ((gc2.get(Calendar.HOUR) + 1) % 12)); 159cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 160cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Regression test for HARMONY-2961 161cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath SimpleTimeZone timezone = new SimpleTimeZone(-3600 * 24 * 1000 * 2, 162cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "GMT"); 163cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gc = new GregorianCalendar(timezone); 164cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 165cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Regression test for HARMONY-5195 166cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Calendar c1 = new GregorianCalendar(TimeZone.getTimeZone("GMT")); 167cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath c1.set(Calendar.YEAR, 1999); 168cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath c1.set(Calendar.MONTH, Calendar.JUNE); 169cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath c1.set(Calendar.DAY_OF_MONTH, 2); 170cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath c1.set(Calendar.HOUR, 15); 171cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath c1.set(Calendar.MINUTE, 34); 172cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath c1.set(Calendar.SECOND, 16); 173cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(34, c1.get(Calendar.MINUTE)); 174cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath c1.setTimeZone(new SimpleTimeZone(60000, "ONE MINUTE")); 175cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(35, c1.get(Calendar.MINUTE)); 176cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 177cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 178cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 179cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.GregorianCalendar#GregorianCalendar(java.util.TimeZone, 180cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath *java.util.Locale) 181cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 182cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorLjava_util_TimeZoneLjava_util_Locale() { 183cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.util.GregorianCalendar(java.util.TimeZone, 184cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.util.Locale) 185cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Date date = new Date(2008, 1, 1); 186cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath TimeZone.getDefault(); 187cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gc1 = new GregorianCalendar(AMERICA_NEW_YORK, Locale.JAPAN); 188cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.setTime(date); 189cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gc2 = new GregorianCalendar(AMERICA_NEW_YORK, Locale.JAPAN); 190cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc2.setTime(date); 191cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gc3 = new GregorianCalendar(AMERICA_CHICAGO, Locale.ITALY); 192cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc3.setTime(date); 193cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Chicago is 1 hour before New York, add 1 to the Chicago time and convert to 0-12 value 194cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect calendar returned", 195cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.get(Calendar.HOUR), ((gc3.get(Calendar.HOUR) + 1) % 12)); 196cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Locales not created correctly", gc1.equals(gc2) 197cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath && !gc1.equals(gc3)); 198cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 199cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 200cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 201cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.GregorianCalendar#add(int, int) 202cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 203cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_addII() { 204cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void java.util.GregorianCalendar.add(int, int) 205cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gc1 = new GregorianCalendar(1998, 11, 6); 206cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.add(GregorianCalendar.YEAR, 1); 207cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Add failed to Increment", 208cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1999, gc1.get(GregorianCalendar.YEAR)); 209cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 210cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1 = new GregorianCalendar(1999, Calendar.JULY, 31); 211cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.add(Calendar.MONTH, 7); 212cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong result year 1", 2000, gc1.get(Calendar.YEAR)); 213cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Wrong result month 1", 214cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.get(Calendar.MONTH) == Calendar.FEBRUARY); 215cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong result date 1", 29, gc1.get(Calendar.DATE)); 216cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 217cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.add(Calendar.YEAR, -1); 218cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong result year 2", 1999, gc1.get(Calendar.YEAR)); 219cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Wrong result month 2", 220cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.get(Calendar.MONTH) == Calendar.FEBRUARY); 221cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong result date 2", 28, gc1.get(Calendar.DATE)); 222cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 223cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1 = new GregorianCalendar(AMERICA_NEW_YORK); 224cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.set(1999, Calendar.APRIL, 3, 16, 0); // day before DST change 225cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.add(Calendar.MILLISECOND, 24 * 60 * 60 * 1000); 2261326a80ee854ad7df3ac183874734e418194572cNarayan Kamath assertEquals("Wrong time after MILLISECOND change", 17, gc1 227cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .get(Calendar.HOUR_OF_DAY)); 228cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.set(1999, Calendar.APRIL, 3, 16, 0); // day before DST change 229cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.add(Calendar.SECOND, 24 * 60 * 60); 2301326a80ee854ad7df3ac183874734e418194572cNarayan Kamath assertEquals("Wrong time after SECOND change", 17, gc1 231cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .get(Calendar.HOUR_OF_DAY)); 232cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.set(1999, Calendar.APRIL, 3, 16, 0); // day before DST change 233cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.add(Calendar.MINUTE, 24 * 60); 2341326a80ee854ad7df3ac183874734e418194572cNarayan Kamath assertEquals("Wrong time after MINUTE change", 17, gc1 235cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .get(Calendar.HOUR_OF_DAY)); 236cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.set(1999, Calendar.APRIL, 3, 16, 0); // day before DST change 237cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.add(Calendar.HOUR, 24); 2381326a80ee854ad7df3ac183874734e418194572cNarayan Kamath assertEquals("Wrong time after HOUR change", 17, gc1 239cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .get(Calendar.HOUR_OF_DAY)); 240cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.set(1999, Calendar.APRIL, 3, 16, 0); // day before DST change 241cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.add(Calendar.HOUR_OF_DAY, 24); 2421326a80ee854ad7df3ac183874734e418194572cNarayan Kamath assertEquals("Wrong time after HOUR_OF_DAY change", 17, gc1 243cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .get(Calendar.HOUR_OF_DAY)); 244cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 245cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.set(1999, Calendar.APRIL, 3, 16, 0); // day before DST change 246cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.add(Calendar.AM_PM, 2); 247cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong time after AM_PM change", 16, gc1 248cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .get(Calendar.HOUR_OF_DAY)); 249cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.set(1999, Calendar.APRIL, 3, 16, 0); // day before DST change 250cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.add(Calendar.DATE, 1); 251cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong time after DATE change", 16, gc1 252cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .get(Calendar.HOUR_OF_DAY)); 253cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.set(1999, Calendar.APRIL, 3, 16, 0); // day before DST change 254cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.add(Calendar.DAY_OF_YEAR, 1); 255cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong time after DAY_OF_YEAR change", 16, gc1 256cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .get(Calendar.HOUR_OF_DAY)); 257cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.set(1999, Calendar.APRIL, 3, 16, 0); // day before DST change 258cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.add(Calendar.DAY_OF_WEEK, 1); 259cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong time after DAY_OF_WEEK change", 16, gc1 260cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .get(Calendar.HOUR_OF_DAY)); 261cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.set(1999, Calendar.APRIL, 3, 16, 0); // day before DST change 262cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.add(Calendar.WEEK_OF_YEAR, 1); 263cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong time after WEEK_OF_YEAR change", 16, gc1 264cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .get(Calendar.HOUR_OF_DAY)); 265cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.set(1999, Calendar.APRIL, 3, 16, 0); // day before DST change 266cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.add(Calendar.WEEK_OF_MONTH, 1); 267cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong time after WEEK_OF_MONTH change", 16, gc1 268cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .get(Calendar.HOUR_OF_DAY)); 269cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.set(1999, Calendar.APRIL, 3, 16, 0); // day before DST change 270cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.add(Calendar.DAY_OF_WEEK_IN_MONTH, 1); 271cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong time after DAY_OF_WEEK_IN_MONTH change", 16, gc1 272cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .get(Calendar.HOUR_OF_DAY)); 273cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 274cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.clear(); 275cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.set(2000, Calendar.APRIL, 1, 23, 0); 276cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.add(Calendar.DATE, 1); 277cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Wrong time after DATE change near DST boundary", gc1 278cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .get(Calendar.MONTH) == Calendar.APRIL 279cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath && gc1.get(Calendar.DATE) == 2 280cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath && gc1.get(Calendar.HOUR_OF_DAY) == 23); 281cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 282cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 283cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 284cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.GregorianCalendar#equals(java.lang.Object) 285cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 286cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_equalsLjava_lang_Object() { 287cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method boolean 288cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.util.GregorianCalendar.equals(java.lang.Object) 289cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gc1 = new GregorianCalendar(1998, 11, 6); 290cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gc2 = new GregorianCalendar(2000, 11, 6); 291cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gc3 = new GregorianCalendar(1998, 11, 6); 292cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Equality check failed", gc1.equals(gc3)); 293cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Equality check failed", !gc1.equals(gc2)); 294cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc3.setGregorianChange(new Date()); 295cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Different gregorian change", !gc1.equals(gc3)); 296cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 297cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 298cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 299cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.GregorianCalendar#getActualMaximum(int) 300cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 301cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_getActualMaximumI() { 302cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method int java.util.GregorianCalendar.getActualMaximum(int) 303cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gc1 = new GregorianCalendar(1900, 1, 1); 304cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gc2 = new GregorianCalendar(1996, 1, 1); 305cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gc3 = new GregorianCalendar(1997, 1, 1); 306cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gc4 = new GregorianCalendar(2000, 1, 1); 307cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gc5 = new GregorianCalendar(2000, 9, 9); 308cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gc6 = new GregorianCalendar(2000, 3, 3); 309cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong actual maximum value for DAY_OF_MONTH for Feb 1900", 310cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 28, gc1.getActualMaximum(Calendar.DAY_OF_MONTH)); 311cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong actual maximum value for DAY_OF_MONTH for Feb 1996", 312cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 29, gc2.getActualMaximum(Calendar.DAY_OF_MONTH)); 313cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong actual maximum value for DAY_OF_MONTH for Feb 1998", 314cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 28, gc3.getActualMaximum(Calendar.DAY_OF_MONTH)); 315cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong actual maximum value for DAY_OF_MONTH for Feb 2000", 316cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 29, gc4.getActualMaximum(Calendar.DAY_OF_MONTH)); 317cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong actual maximum value for DAY_OF_MONTH for Oct 2000", 318cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 31, gc5.getActualMaximum(Calendar.DAY_OF_MONTH)); 319cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong actual maximum value for DAY_OF_MONTH for Apr 2000", 320cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 30, gc6.getActualMaximum(Calendar.DAY_OF_MONTH)); 321cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Wrong actual maximum value for MONTH", gc1 322cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getActualMaximum(Calendar.MONTH) == Calendar.DECEMBER); 323cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong actual maximum value for HOUR_OF_DAY", 23, gc1 324cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getActualMaximum(Calendar.HOUR_OF_DAY)); 325cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong actual maximum value for HOUR", 11, gc1 326cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getActualMaximum(Calendar.HOUR)); 327cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong actual maximum value for DAY_OF_WEEK_IN_MONTH", 4, gc6 328cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getActualMaximum(Calendar.DAY_OF_WEEK_IN_MONTH)); 329cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 330cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 331cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Regression test for harmony 2954 332cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Date date = new Date(Date.parse("Jan 15 00:00:01 GMT 2000")); 333cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gc = new GregorianCalendar(); 334cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc.setTimeInMillis(Date.parse("Dec 15 00:00:01 GMT 1582")); 335cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(355, gc.getActualMaximum(Calendar.DAY_OF_YEAR)); 336cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc.setGregorianChange(date); 337cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc.setTimeInMillis(Date.parse("Jan 16 00:00:01 GMT 2000")); 338cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(353, gc.getActualMaximum(Calendar.DAY_OF_YEAR)); 339cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 340cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath //Regression test for HARMONY-3004 341cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc = new GregorianCalendar(1900, 7, 1); 342cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String[] ids = TimeZone.getAvailableIDs(); 343cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < ids.length; i++) { 344cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath TimeZone tz = TimeZone.getTimeZone(ids[i]); 345cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc.setTimeZone(tz); 346cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int j = 1900; j < 2000; j++) { 347cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc.set(Calendar.YEAR, j); 348cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(7200000, gc.getActualMaximum(Calendar.DST_OFFSET)); 349cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 350cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 351cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 352cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 353cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 354cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.GregorianCalendar#getActualMinimum(int) 355cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 356cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_getActualMinimumI() { 357cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method int java.util.GregorianCalendar.getActualMinimum(int) 358cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gc1 = new GregorianCalendar(1900, 1, 1); 359cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new GregorianCalendar(1996, 1, 1); 360cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new GregorianCalendar(1997, 1, 1); 361cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new GregorianCalendar(2000, 1, 1); 362cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new GregorianCalendar(2000, 9, 9); 363cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gc6 = new GregorianCalendar(2000, 3, 3); 364cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong actual minimum value for DAY_OF_MONTH for Feb 1900", 365cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1, gc1.getActualMinimum(Calendar.DAY_OF_MONTH)); 366cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Wrong actual minimum value for MONTH", gc1 367cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getActualMinimum(Calendar.MONTH) == Calendar.JANUARY); 368cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong actual minimum value for HOUR_OF_DAY", 0, gc1 369cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getActualMinimum(Calendar.HOUR_OF_DAY)); 370cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong actual minimum value for HOUR", 0, gc1 371cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getActualMinimum(Calendar.HOUR)); 372cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong actual minimum value for DAY_OF_WEEK_IN_MONTH", 1, gc6 373cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getActualMinimum(Calendar.DAY_OF_WEEK_IN_MONTH)); 374cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 375cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 376cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 377cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.GregorianCalendar#getGreatestMinimum(int) 378cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 379cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_getGreatestMinimumI() { 380cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method int 381cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.util.GregorianCalendar.getGreatestMinimum(int) 382cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gc = new GregorianCalendar(); 383cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong greatest minimum value for DAY_OF_MONTH", 1, gc 384cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getGreatestMinimum(Calendar.DAY_OF_MONTH)); 385cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Wrong greatest minimum value for MONTH", gc 386cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getGreatestMinimum(Calendar.MONTH) == Calendar.JANUARY); 387cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong greatest minimum value for HOUR_OF_DAY", 0, gc 388cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getGreatestMinimum(Calendar.HOUR_OF_DAY)); 389cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong greatest minimum value for HOUR", 0, gc 390cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getGreatestMinimum(Calendar.HOUR)); 391cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 392cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath BitSet result = new BitSet(); 393cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath int[] min = { 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, -46800000, 394cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 0 }; 395cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < min.length; i++) { 396cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (gc.getGreatestMinimum(i) != min[i]) 397cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath result.set(i); 398cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 399cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Wrong greatest min for " + result, result.length() == 0); 400cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 401cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 402cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 403cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.GregorianCalendar#getGregorianChange() 404cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 405cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_getGregorianChange() { 406cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.util.Date 407cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.util.GregorianCalendar.getGregorianChange() 408cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gc = new GregorianCalendar(); 409cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar returnedChange = new GregorianCalendar(AMERICA_NEW_YORK); 410cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath returnedChange.setTime(gc.getGregorianChange()); 411cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Returned incorrect year", 412cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1582, returnedChange.get(Calendar.YEAR)); 413cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Returned incorrect month", returnedChange 414cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .get(Calendar.MONTH) == Calendar.OCTOBER); 415cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Returned incorrect day of month", 4, returnedChange 416cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .get(Calendar.DAY_OF_MONTH)); 417cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 418cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 419cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 420cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.GregorianCalendar#getLeastMaximum(int) 421cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 422cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_getLeastMaximumI() { 423cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method int java.util.GregorianCalendar.getLeastMaximum(int) 424cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gc = new GregorianCalendar(); 425cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong least maximum value for DAY_OF_MONTH", 28, gc 426cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getLeastMaximum(Calendar.DAY_OF_MONTH)); 427cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Wrong least maximum value for MONTH", gc 428cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getLeastMaximum(Calendar.MONTH) == Calendar.DECEMBER); 429cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong least maximum value for HOUR_OF_DAY", 23, gc 430cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getLeastMaximum(Calendar.HOUR_OF_DAY)); 431cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong least maximum value for HOUR", 11, gc 432cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getLeastMaximum(Calendar.HOUR)); 433cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 434cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath BitSet result = new BitSet(); 435cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Vector values = new Vector(); 436cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath int[] max = { 1, 292269054, 11, 50, 3, 28, 355, 7, 3, 1, 11, 23, 59, 437cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 59, 999, 50400000, 1200000 }; 438cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < max.length; i++) { 439cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (gc.getLeastMaximum(i) != max[i]) { 440cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath result.set(i); 441cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath values.add(new Integer(gc.getLeastMaximum(i))); 442cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 443cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 444cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Wrong least max for " + result + " = " + values, result 445cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .length() == 0); 446cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 447cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 448cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 449cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.GregorianCalendar#getMaximum(int) 450cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 451cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_getMaximumI() { 452cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method int java.util.GregorianCalendar.getMaximum(int) 453cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gc = new GregorianCalendar(); 454cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong maximum value for DAY_OF_MONTH", 31, gc 455cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getMaximum(Calendar.DAY_OF_MONTH)); 456cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Wrong maximum value for MONTH", gc 457cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getMaximum(Calendar.MONTH) == Calendar.DECEMBER); 458cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong maximum value for HOUR_OF_DAY", 23, gc 459cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getMaximum(Calendar.HOUR_OF_DAY)); 460cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong maximum value for HOUR", 461cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 11, gc.getMaximum(Calendar.HOUR)); 462cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 463cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath BitSet result = new BitSet(); 464cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Vector values = new Vector(); 465cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath int[] max = { 1, 292278994, 11, 53, 6, 31, 366, 7, 6, 1, 11, 23, 59, 466cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 59, 999, 50400000, 7200000 }; 467cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < max.length; i++) { 468cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (gc.getMaximum(i) != max[i]) { 469cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath result.set(i); 470cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath values.add(new Integer(gc.getMaximum(i))); 471cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 472cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 473cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Wrong max for " + result + " = " + values, 474cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath result.length() == 0); 475cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 476cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 477cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 478cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.GregorianCalendar#getMinimum(int) 479cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 480cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_getMinimumI() { 481cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method int java.util.GregorianCalendar.getMinimum(int) 482cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gc = new GregorianCalendar(); 483cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong minimum value for DAY_OF_MONTH", 1, gc 484cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getMinimum(Calendar.DAY_OF_MONTH)); 485cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Wrong minimum value for MONTH", gc 486cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getMinimum(Calendar.MONTH) == Calendar.JANUARY); 487cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong minimum value for HOUR_OF_DAY", 0, gc 488cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getMinimum(Calendar.HOUR_OF_DAY)); 489cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong minimum value for HOUR", 490cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 0, gc.getMinimum(Calendar.HOUR)); 491cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 492cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath BitSet result = new BitSet(); 493cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath int[] min = { 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, -46800000, 494cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 0 }; 495cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < min.length; i++) { 496cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (gc.getMinimum(i) != min[i]) 497cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath result.set(i); 498cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 499cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Wrong min for " + result, result.length() == 0); 500cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 501cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 502cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 503cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.GregorianCalendar#isLeapYear(int) 504cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 505cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_isLeapYearI() { 506cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method boolean java.util.GregorianCalendar.isLeapYear(int) 507cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gc = new GregorianCalendar(1998, 11, 6); 508cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Returned incorrect value for leap year", !gc 509cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .isLeapYear(1998)); 510cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Returned incorrect value for leap year", gc 511cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .isLeapYear(2000)); 512cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 513cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 514cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 515cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 516cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.GregorianCalendar#roll(int, int) 517cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 518cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_rollII() { 519cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void java.util.GregorianCalendar.roll(int, int) 520cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gc = new GregorianCalendar(1972, Calendar.OCTOBER, 8, 521cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2, 5, 0); 522cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc.roll(Calendar.DAY_OF_MONTH, -1); 523cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Failed to roll DAY_OF_MONTH down by 1", gc 524cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals(new GregorianCalendar(1972, Calendar.OCTOBER, 7, 2, 5, 525cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 0))); 526cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc = new GregorianCalendar(1972, Calendar.OCTOBER, 8, 2, 5, 0); 527cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc.roll(Calendar.DAY_OF_MONTH, 25); 528cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Failed to roll DAY_OF_MONTH up by 25", gc 529cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals(new GregorianCalendar(1972, Calendar.OCTOBER, 2, 2, 5, 530cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 0))); 531cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc = new GregorianCalendar(1972, Calendar.OCTOBER, 8, 2, 5, 0); 532cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc.roll(Calendar.DAY_OF_MONTH, -10); 533cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Failed to roll DAY_OF_MONTH down by 10", gc 534cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals(new GregorianCalendar(1972, Calendar.OCTOBER, 29, 2, 5, 535cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 0))); 536cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 537cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 538cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 539cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.GregorianCalendar#roll(int, boolean) 540cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 541cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_rollIZ() { 542cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void java.util.GregorianCalendar.roll(int, boolean) 543cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gc = new GregorianCalendar(1972, Calendar.OCTOBER, 544cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 13, 19, 9, 59); 545cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc.roll(Calendar.DAY_OF_MONTH, false); 546cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Failed to roll day_of_month down", gc 547cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals(new GregorianCalendar(1972, Calendar.OCTOBER, 12, 19, 548cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 9, 59))); 549cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc = new GregorianCalendar(1972, Calendar.OCTOBER, 13, 19, 9, 59); 550cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc.roll(Calendar.DAY_OF_MONTH, true); 551cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Failed to roll day_of_month up", gc 552cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals(new GregorianCalendar(1972, Calendar.OCTOBER, 14, 19, 553cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 9, 59))); 554cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc = new GregorianCalendar(1972, Calendar.OCTOBER, 31, 19, 9, 59); 555cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc.roll(Calendar.DAY_OF_MONTH, true); 556cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Failed to roll day_of_month up", gc 557cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals(new GregorianCalendar(1972, Calendar.OCTOBER, 1, 19, 9, 558cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 59))); 559cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 560cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar cal = new GregorianCalendar(); 561cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath int result; 562cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 563cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath cal.roll(Calendar.ZONE_OFFSET, true); 564cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath result = 0; 565cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalArgumentException e) { 566cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath result = 1; 567cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 568cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("ZONE_OFFSET roll", 1, result); 569cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 570cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath cal.roll(Calendar.DST_OFFSET, true); 571cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath result = 0; 572cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalArgumentException e) { 573cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath result = 1; 574cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 575cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("ZONE_OFFSET roll", 1, result); 576cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 577cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath cal.set(2004, Calendar.DECEMBER, 31, 5, 0, 0); 578cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath cal.roll(Calendar.WEEK_OF_YEAR, true); 579cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong year: " + cal.getTime(), 2004, cal 580cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .get(Calendar.YEAR)); 581cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong month: " + cal.getTime(), Calendar.JANUARY, cal 582cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .get(Calendar.MONTH)); 5835d175dd4d7b128492ef7e3da6a77d80b8fd0aa22Tobias Thierer // Android-changed: Bugfix for https://bugs.openjdk.java.net/browse/JDK-6902861. This 584d7928577b0cc656c1c6da16bfe281541fdd435eeJoachim Sauer // returned 9 before Android O. 585d7928577b0cc656c1c6da16bfe281541fdd435eeJoachim Sauer assertEquals("Wrong date: " + cal.getTime(), 2, cal.get(Calendar.DATE)); 586cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 587cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Regression for HARMONY-4372 588cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath cal.set(1994, 11, 30, 5, 0, 0); 589cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath cal.setMinimalDaysInFirstWeek(4); 590cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath cal.roll(Calendar.WEEK_OF_YEAR, true); 591cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong year: " + cal.getTime(), 1994, cal 592cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .get(Calendar.YEAR)); 593cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong month: " + cal.getTime(), Calendar.JANUARY, cal 594cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .get(Calendar.MONTH)); 595cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong date: " + cal.getTime(), 7, cal.get(Calendar.DATE)); 596cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 597cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath cal.roll(Calendar.WEEK_OF_YEAR, true); 598cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong year: " + cal.getTime(), 1994, cal 599cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .get(Calendar.YEAR)); 600cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong month: " + cal.getTime(), Calendar.JANUARY, cal 601cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .get(Calendar.MONTH)); 602cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong date: " + cal.getTime(), 14, cal.get(Calendar.DATE)); 603cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 604cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath cal.roll(Calendar.WEEK_OF_YEAR, false); 605cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong year: " + cal.getTime(), 1994, cal 606cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .get(Calendar.YEAR)); 607cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong month: " + cal.getTime(), Calendar.JANUARY, cal 608cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .get(Calendar.MONTH)); 609cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong date: " + cal.getTime(), 7, cal.get(Calendar.DATE)); 610cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 611cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath cal.roll(Calendar.WEEK_OF_YEAR, false); 612cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong year: " + cal.getTime(), 1994, cal 613cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .get(Calendar.YEAR)); 614cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong month: " + cal.getTime(), Calendar.DECEMBER, cal 615cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .get(Calendar.MONTH)); 616cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong date: " + cal.getTime(), 30, cal.get(Calendar.DATE)); 617cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 618cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath cal.roll(Calendar.WEEK_OF_YEAR, false); 619cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong year: " + cal.getTime(), 1994, cal 620cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .get(Calendar.YEAR)); 621cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong month: " + cal.getTime(), Calendar.DECEMBER, cal 622cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .get(Calendar.MONTH)); 623cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong date: " + cal.getTime(), 23, cal.get(Calendar.DATE)); 624cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 625cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Regression for HARMONY-4510 626cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath cal.set(1999, Calendar.DECEMBER, 31, 23, 59, 59); 627cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath cal.roll(GregorianCalendar.WEEK_OF_YEAR, true); 628cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong year: " + cal.getTime(), 1999, cal 629cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .get(Calendar.YEAR)); 630cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong month: " + cal.getTime(), Calendar.JANUARY, cal 631cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .get(Calendar.MONTH)); 632cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong date: " + cal.getTime(), 8, cal.get(Calendar.DATE)); 633cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath cal.roll(GregorianCalendar.WEEK_OF_YEAR, false); 634cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong year: " + cal.getTime(), 1999, cal 635cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .get(Calendar.YEAR)); 636cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong month: " + cal.getTime(), Calendar.DECEMBER, cal 637cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .get(Calendar.MONTH)); 638cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong date: " + cal.getTime(), 31, cal.get(Calendar.DATE)); 639cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 640cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 641cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 642cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.GregorianCalendar#setGregorianChange(java.util.Date) 643cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 644cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_setGregorianChangeLjava_util_Date() { 645cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 646cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.util.GregorianCalendar.setGregorianChange(java.util.Date) 647cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gc1 = new GregorianCalendar(1582, Calendar.OCTOBER, 648cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4, 0, 0); 649cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gc2 = new GregorianCalendar(1972, Calendar.OCTOBER, 650cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 13, 0, 0); 651cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.setGregorianChange(gc2.getTime()); 652cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Returned incorrect value", gc2.getTime().equals( 653cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc1.getGregorianChange())); 654cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 655cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 656cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 657cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.GregorianCalendar#clone() 658cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 659cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_clone() { 660cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 661cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Regression for HARMONY-498 662cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gCalend = new GregorianCalendar(); 663cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 664cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gCalend.set(Calendar.MILLISECOND, 0); 665cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath int dayOfMonth = gCalend.get(Calendar.DAY_OF_MONTH); 666cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 667cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // create clone object and change date 668cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gCalendClone = (GregorianCalendar) gCalend.clone(); 669cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gCalendClone.add(Calendar.DATE, 1); 670cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 671cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Before", dayOfMonth, gCalend.get(Calendar.DAY_OF_MONTH)); 672cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gCalend.set(Calendar.MILLISECOND, 0);//changes nothing 673cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("After", dayOfMonth, gCalend.get(Calendar.DAY_OF_MONTH)); 674cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 675cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 676cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 677cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.GregorianCalendar#getMinimalDaysInFirstWeek() 678cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 679cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_getMinimalDaysInFirstWeek() { 680cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Regression for Harmony-1037 681cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Some non-bug differences below because of different CLDR data of Harmony 682cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar g = new GregorianCalendar(TimeZone 683cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getTimeZone("Europe/London"), new Locale("en", "GB")); 684cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath int minimalDaysInFirstWeek = g.getMinimalDaysInFirstWeek(); 685cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(4, minimalDaysInFirstWeek); 686cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 687cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath g = new GregorianCalendar(TimeZone.getTimeZone("Europe/London"), 688cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new Locale("fr")); 689cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath minimalDaysInFirstWeek = g.getMinimalDaysInFirstWeek(); 690cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(4, minimalDaysInFirstWeek); 691cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 692cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath g = new GregorianCalendar(TimeZone.getTimeZone("Europe/London"), 693cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new Locale("fr", "CA")); 694cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath minimalDaysInFirstWeek = g.getMinimalDaysInFirstWeek(); 695ce54057889055ab8c4cb45c51df0ca9ee09ebb43Narayan Kamath assertEquals(1, minimalDaysInFirstWeek); 696cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 697cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 698cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 699cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 700cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.GregorianCalendar#computeTime() 701cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 702cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_computeTime() { 703cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Regression for Harmony-493 704cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar g = new GregorianCalendar( 705cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath TimeZone.getTimeZone("Europe/London"), 706cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new Locale("en", "GB") 707cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ); 708cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath g.clear(); 7093f2128b3408255e317f66c10c6dd5edbff53b3eeNarayan Kamath g.set(2006, Calendar.MARCH, 26, 01, 50, 00); 710cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(1143337800000L, g.getTimeInMillis()); 711cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 712cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar g1 = new GregorianCalendar( 7133f2128b3408255e317f66c10c6dd5edbff53b3eeNarayan Kamath TimeZone.getTimeZone("Europe/Moscow")); 714cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath g1.clear(); 7153f2128b3408255e317f66c10c6dd5edbff53b3eeNarayan Kamath g1.set(2006, Calendar.MARCH, 26, 02, 20, 00); 716cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(1143328800000L, g1.getTimeInMillis()); 717cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(3, g1.get(Calendar.HOUR_OF_DAY)); 7183f2128b3408255e317f66c10c6dd5edbff53b3eeNarayan Kamath assertEquals(20, g1.get(Calendar.MINUTE)); 7193f2128b3408255e317f66c10c6dd5edbff53b3eeNarayan Kamath 720cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath g1.clear(); 7213f2128b3408255e317f66c10c6dd5edbff53b3eeNarayan Kamath g1.set(2006, Calendar.OCTOBER, 29, 02, 50, 00); 722cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(1162079400000L, g1.getTimeInMillis()); 723cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(2, g1.get(Calendar.HOUR_OF_DAY)); 7243f2128b3408255e317f66c10c6dd5edbff53b3eeNarayan Kamath assertEquals(50, g1.get(Calendar.MINUTE)); 725cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // End of regression test 726cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 727cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 728cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 729cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.GregorianCalendar#get(int) 730cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 731cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath @SuppressWarnings("deprecation") 732cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_getI() { 733cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Regression test for HARMONY-2959 734cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Date date = new Date(Date.parse("Jan 15 00:00:01 GMT 2000")); 735cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath GregorianCalendar gc = new GregorianCalendar(TimeZone.getTimeZone("GMT")); 736cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc.setGregorianChange(date); 737cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc.setTimeInMillis(Date.parse("Dec 24 00:00:01 GMT 2000")); 738cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(346, gc.get(Calendar.DAY_OF_YEAR)); 739cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 740cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Regression test for HARMONY-3003 741cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath date = new Date(Date.parse("Feb 28 00:00:01 GMT 2000")); 742cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc = new GregorianCalendar(TimeZone.getTimeZone("GMT")); 743cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc.setGregorianChange(date); 744cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc.setTimeInMillis(Date.parse("Dec 1 00:00:01 GMT 2000")); 745cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(1, gc.get(Calendar.DAY_OF_MONTH)); 746cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(11, gc.get(Calendar.MONTH)); 747cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 748cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Regression test for HARMONY-4513 749cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc = new GregorianCalendar(TimeZone.getTimeZone("GMT")); 750cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc.set(1582, Calendar.OCTOBER, 15, 0, 0, 0); 751cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // reset millisecond to zero in order to be the same time as cutover 752cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc.set(Calendar.MILLISECOND, 0); 753cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(0, gc.get(Calendar.MILLISECOND)); 754cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(1582, gc.get(Calendar.YEAR)); 755cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(Calendar.OCTOBER, gc.get(Calendar.MONTH)); 756cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(15, gc.get(Calendar.DAY_OF_MONTH)); 757cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(0, gc.get(Calendar.HOUR_OF_DAY)); 758cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(0, gc.get(Calendar.MINUTE)); 759cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(0, gc.get(Calendar.SECOND)); 760cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath gc.set(1582, Calendar.OCTOBER, 14, 0, 0, 0); 761cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(24, gc.get(Calendar.DAY_OF_MONTH)); 762cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 763cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath} 764