1146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project/*
2146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project * Copyright (C) 2007 The Android Open Source Project
3146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project *
4146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
5146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project * you may not use this file except in compliance with the License.
6146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project * You may obtain a copy of the License at
7146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project *
8146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
9146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project *
10146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software
11146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
12146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project * See the License for the specific language governing permissions and
14146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project * limitations under the License.
15146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project */
16146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project
17146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Projectpackage com.android.calendar;
18146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project
19146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Projectimport android.test.AndroidTestCase;
20146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Projectimport android.test.suitebuilder.annotation.SmallTest;
217e4b2c1ddb6680d5b413c5f25592b0128e5f14dcMichael Chanimport android.test.suitebuilder.annotation.Smoke;
227e4b2c1ddb6680d5b413c5f25592b0128e5f14dcMichael Chanimport android.text.format.DateUtils;
237e4b2c1ddb6680d5b413c5f25592b0128e5f14dcMichael Chanimport android.text.format.Time;
24146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Projectimport android.util.Log;
25146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project
26146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project
27146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project/**
28146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project * Unit tests for {@link android.text.format.Time#getWeekNumber}.
29146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project */
30146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Projectpublic class WeekNumberTest extends AndroidTestCase {
31146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project
3298ab9de2fa5ad8dfd37faa6593dc66fa426d8960Michael Chan    static private class DateAndWeekNumber {
33146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project        public Time date;
34146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project        public Time allDayDate;
35146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project        public int expectedWeekNumber;
36146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project
37146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project        public DateAndWeekNumber(int year, int month, int day, int expectedWeekNumber) {
38146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            date = new Time();
39146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            allDayDate = new Time(Time.TIMEZONE_UTC);
40146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project
41146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            date.set(0, 0, 0, day, month, year);
42146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            date.normalize(true /* ignore isDst */);
43146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project
44146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            allDayDate.set(day, month, year);
45146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            allDayDate.normalize(true /* ignore isDst */);
46146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project
477e4b2c1ddb6680d5b413c5f25592b0128e5f14dcMichael Chan            this.expectedWeekNumber = expectedWeekNumber;
48146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project        }
49146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project    }
50146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project
51146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project    DateAndWeekNumber[] tests = {
52146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(1998, 11, 28, 53),
53146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(1998, 11, 29, 53),
54146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(1998, 11, 30, 53),
55146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(1998, 11, 31, 53),
56146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(1999, 0, 1, 53),
57146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(1999, 0, 2, 53),
58146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(1999, 0, 3, 53),
59146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(1999, 0, 4, 1),
60146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(1999, 0, 10, 1),
61146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(1999, 0, 20, 3),
62146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(1999, 0, 30, 4),
63146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project
64146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(1999, 11, 28, 52),
65146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(1999, 11, 29, 52),
66146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(1999, 11, 30, 52),
67146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(1999, 11, 31, 52),
68146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2000, 0, 1, 52),
69146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2000, 0, 2, 52),
70146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2000, 0, 3, 1),
71146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2000, 0, 4, 1),
72146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2000, 0, 10, 2),
73146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2000, 0, 20, 3),
74146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2000, 0, 30, 4),
75146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project
76146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2000, 11, 28, 52),
77146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2000, 11, 29, 52),
78146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2000, 11, 30, 52),
79146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2000, 11, 31, 52),
80146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2001, 0, 1, 1),
81146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2001, 0, 2, 1),
82146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2001, 0, 3, 1),
83146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2001, 0, 4, 1),
84146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2001, 0, 10, 2),
85146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2001, 0, 20, 3),
86146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2001, 0, 30, 5),
87146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project
88146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2001, 11, 28, 52),
89146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2001, 11, 29, 52),
90146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2001, 11, 30, 52),
91146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2001, 11, 31, 1),
92146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2002, 0, 1, 1),
93146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2002, 0, 2, 1),
94146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2002, 0, 3, 1),
95146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2002, 0, 4, 1),
96146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2002, 0, 10, 2),
97146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2002, 0, 20, 3),
98146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2002, 0, 30, 5),
99146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project
100146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2002, 11, 28, 52),
101146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2002, 11, 29, 52),
102146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2002, 11, 30, 1),
103146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2002, 11, 31, 1),
104146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2003, 0, 1, 1),
105146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2003, 0, 2, 1),
106146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2003, 0, 3, 1),
107146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2003, 0, 4, 1),
108146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2003, 0, 10, 2),
109146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2003, 0, 20, 4),
110146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2003, 0, 30, 5),
111146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project
112146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2003, 11, 28, 52),
113146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2003, 11, 29, 1),
114146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2003, 11, 30, 1),
115146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2003, 11, 31, 1),
116146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2004, 0, 1, 1),
117146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2004, 0, 2, 1),
118146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2004, 0, 3, 1),
119146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2004, 0, 4, 1),
120146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2004, 0, 10, 2),
121146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2004, 0, 20, 4),
122146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2004, 0, 30, 5),
123146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project
124146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2004, 0, 1, 1),
125146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2004, 1, 1, 5),
126146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2004, 2, 1, 10),
127146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2004, 3, 1, 14),
128146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2004, 4, 1, 18),
129146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2004, 5, 1, 23),
130146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2004, 6, 1, 27),
131146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2004, 7, 1, 31),
132146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2004, 8, 1, 36),
133146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2004, 9, 1, 40),
134146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2004, 10, 1, 45),
135146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2004, 11, 1, 49),
136146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project
137146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2004, 11, 28, 53),
138146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2004, 11, 29, 53),
139146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2004, 11, 30, 53),
140146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2004, 11, 31, 53),
141146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2005, 0, 1, 53),
142146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2005, 0, 2, 53),
143146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2005, 0, 3, 1),
144146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2005, 0, 4, 1),
145146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2005, 0, 10, 2),
146146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2005, 0, 20, 3),
147146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2005, 0, 30, 4),
148146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project
149146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2005, 11, 28, 52),
150146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2005, 11, 29, 52),
151146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2005, 11, 30, 52),
152146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2005, 11, 31, 52),
153146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2006, 0, 1, 52),
154146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2006, 0, 2, 1),
155146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2006, 0, 3, 1),
156146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2006, 0, 4, 1),
157146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2006, 0, 10, 2),
158146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2006, 0, 20, 3),
159146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2006, 0, 30, 5),
160146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project
161146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2006, 11, 28, 52),
162146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2006, 11, 29, 52),
163146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2006, 11, 30, 52),
164146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2006, 11, 31, 52),
165146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2007, 0, 1, 1),
166146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2007, 0, 2, 1),
167146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2007, 0, 3, 1),
168146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2007, 0, 4, 1),
169146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2007, 0, 10, 2),
170146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2007, 0, 20, 3),
171146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2007, 0, 30, 5),
172146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project
173146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2007, 11, 28, 52),
174146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2007, 11, 29, 52),
175146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2007, 11, 30, 52),
176146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2007, 11, 31, 1),
177146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2008, 0, 1, 1),
178146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2008, 0, 2, 1),
179146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2008, 0, 3, 1),
180146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2008, 0, 4, 1),
181146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2008, 0, 10, 2),
182146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2008, 0, 20, 3),
183146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2008, 0, 30, 5),
184146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project
185146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2008, 11, 28, 52),
186146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2008, 11, 29, 1),
187146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2008, 11, 30, 1),
188146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2008, 11, 31, 1),
189146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2009, 0, 1, 1),
190146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2009, 0, 2, 1),
191146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2009, 0, 3, 1),
192146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2009, 0, 4, 1),
193146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2009, 0, 10, 2),
194146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2009, 0, 20, 4),
195146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            new DateAndWeekNumber(2009, 0, 30, 5),
196146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project    };
197146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project
198146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project    @Override
199146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project    protected void setUp() throws Exception {
200146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project        super.setUp();
201146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project    }
202146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project
2037e4b2c1ddb6680d5b413c5f25592b0128e5f14dcMichael Chan    @Smoke
204146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project    @SmallTest
205146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project    public void testAll() throws Exception {
206146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project        int len = tests.length;
207146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project        for (int index = 0; index < len; index++) {
208146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            DateAndWeekNumber test = tests[index];
209146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            int weekNumber = test.date.getWeekNumber();
210146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            if (weekNumber != test.expectedWeekNumber) {
211146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project                long millis = test.date.toMillis(false /* use isDst */);
212146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project                int flags = DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_NUMERIC_DATE;
213146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project                String output = DateUtils.formatDateTime(mContext, millis, flags);
214146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project                Log.i("WeekNumberTest", "index " + index
215146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project                        + " date: " + output
216146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project                        + " expected: " + test.expectedWeekNumber
217146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project                        + " actual: " + weekNumber);
218146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            }
219146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            assertEquals(weekNumber, test.expectedWeekNumber);
220146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project
221146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            weekNumber = test.allDayDate.getWeekNumber();
222146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            if (weekNumber != test.expectedWeekNumber) {
223146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project                long millis = test.date.toMillis(false /* use isDst */);
224146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project                int flags = DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_NUMERIC_DATE;
225146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project                String output = DateUtils.formatDateTime(mContext, millis, flags);
226146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project                Log.i("WeekNumberTest", "(all-day) index " + index
227146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project                        + " date: " + output
228146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project                        + " expected: " + test.expectedWeekNumber
229146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project                        + " actual: " + weekNumber);
230146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            }
231146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project            assertEquals(weekNumber, test.expectedWeekNumber);
232146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project        }
233146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project    }
234146de36083f6ce8b7e8a1f974d3990594a36bfecThe Android Open Source Project}
235