1 package com.td.service;
\r
3 import java.util.ArrayList;
\r
4 import java.util.Calendar;
\r
5 import java.util.Date;
\r
6 import java.util.List;
\r
8 import android.content.Context;
\r
9 import android.widget.Toast;
\r
11 import com.td.db.Monitor;
\r
12 import com.td.test.TestException;
\r
13 import com.td.test.TestUtil;
\r
14 import com.td.utility.DateUtil;
\r
15 import com.td.utility.Debug;
\r
17 public class SchedulerTest {
\r
18 public static void repeat(Context context){
\r
19 Calendar cal = Calendar.getInstance();
\r
20 Scheduler sc = new Scheduler();
\r
21 long t = cal.getTimeInMillis();
\r
25 for (int i = 0; i < 5; i++){
\r
26 t = sc.calcSchedule(t, DateUtil.LEN);
\r
27 Date d = DateUtil.getDate(t);
\r
28 String ymd = DateUtil.formattedYmd(DateUtil.getYmd(d));
\r
29 String hm = DateUtil.formattedHm(DateUtil.getHm(d));
\r
30 String msg = ymd + " " + hm;
\r
31 Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
\r
35 public static void main() {
\r
36 SchedulerTest obj = new SchedulerTest();
\r
38 Debug.i(obj, "start");
\r
40 test_nextSchedule();
\r
41 test_isContainListTerm();
\r
42 test_makeScheduleListMonitor();
\r
43 test_addListTermMonitor();
\r
44 test_addListTermTerm();
\r
47 } catch (TestException e) {
\r
48 Debug.i(obj, null, e);
\r
50 Debug.i(obj, "end");
\r
53 public static void test_nextSchedule() throws TestException{
\r
54 Scheduler sc = null;
\r
58 Calendar cal1 = null;
\r
59 Calendar cal2 = null;
\r
60 List<Term>[] list = null;
\r
61 List<Term> l = null;
\r
75 for (int i = 0; i < 5; i++){
\r
76 sc = new Scheduler();
\r
77 Debug.d(sc, "case " + i);
\r
80 list = sc.getList();
\r
84 //
\8e\9f\82Ì
\8e\9e\8aÔ
\82ª
\91¶
\8dÝ
\82·
\82é
\r
90 cal1 = DateUtil.getCalendar(y, m, d, h, mi);
\r
91 now = cal1.getTimeInMillis();
\r
93 n1 = DateUtil.getWeek(cal1);
\r
95 t = new Term(DateUtil.getHm(10, 0), DateUtil.getHm(10, 20));
\r
99 //
\8e\9f\82Ì
\8e\9e\8aÔ
\82ª
\91¶
\8dÝ
\82µ
\82È
\82¢
\81A
\88ê
\8fT
\8aÔ
\82Ü
\82í
\82Á
\82Ä
\8c³
\82Ì
\8e\9e\8aÔ
\82Ì
\90æ
\93ª
\82É
\r
105 cal1 = DateUtil.getCalendar(y, m, d, h, mi);
\r
106 now = cal1.getTimeInMillis();
\r
108 n1 = DateUtil.getWeek(cal1);
\r
110 t = new Term(DateUtil.getHm(10, 0), DateUtil.getHm(10, 5));
\r
114 //
\93¯
\82¶
\93ú
\82Ì
\8e\9f\82ÌTerm
\r
120 cal1 = DateUtil.getCalendar(y, m, d, h, mi);
\r
121 now = cal1.getTimeInMillis();
\r
123 n1 = DateUtil.getWeek(cal1);
\r
125 t = new Term(DateUtil.getHm(22, 10), DateUtil.getHm(22, 20));
\r
127 t = new Term(DateUtil.getHm(23, 0), DateUtil.getHm(24, 0));
\r
131 //
\97j
\93ú
\82ð
\82Ü
\82½
\82¢
\82Å
\81A
\8e\9f\82ÌTerm
\81B
\8e\9f\82Ì
\94N
\r
137 cal1 = DateUtil.getCalendar(y, m, d, h, mi);
\r
138 now = cal1.getTimeInMillis();
\r
140 n1 = DateUtil.getWeek(cal1);
\r
141 n1 = (n1 + 1) % DateUtil.WEEK;
\r
143 t = new Term(DateUtil.getHm(1, 23), DateUtil.getHm(23, 35));
\r
147 //
\93ú
\82ð
\82Ü
\82½
\82¢
\82Å
\8e\9f\82ÌTerm
\82ª
\91¶
\8dÝ
\82·
\82é
\r
153 cal1 = DateUtil.getCalendar(y, m, d, h, mi);
\r
154 now = cal1.getTimeInMillis();
\r
156 n1 = DateUtil.getWeek(cal1);
\r
157 n1 = (n1 + 1) % DateUtil.WEEK;
\r
159 t = new Term(DateUtil.getHm(0, 0), DateUtil.getHm(23, 59));
\r
164 next = sc.nextSchedule(now, DateUtil.LEN);
\r
166 throw new TestException();
\r
168 cal2 = Calendar.getInstance();
\r
169 cal2.setTimeInMillis(next);
\r
170 y2 = DateUtil.getYear(cal2);
\r
171 m2 = DateUtil.getMonth(cal2);
\r
172 d2 = DateUtil.getDay(cal2);
\r
173 h2 = DateUtil.getHour(cal2);
\r
174 mi2 = DateUtil.getMinute(cal2);
\r
178 mi += DateUtil.LEN;
\r
181 d += DateUtil.WEEK;
\r
204 TestUtil.equal(y, y2);
\r
205 TestUtil.equal(m, m2);
\r
206 TestUtil.equal(d, d2);
\r
207 TestUtil.equal(h, h2);
\r
208 TestUtil.equal(mi, mi2);
\r
212 public static void test_isContainListTerm() throws TestException {
\r
213 Scheduler sc = null;
\r
214 List<Term> l = null;
\r
218 for (int i = 0; i < 4; i++) {
\r
219 sc = new Scheduler();
\r
220 l = new ArrayList<Term>();
\r
224 t = new Term(1, 2);
\r
226 t = new Term(3, 4);
\r
228 t = new Term(5, 6);
\r
234 t = new Term(1, 2);
\r
236 t = new Term(4, 5);
\r
242 t = new Term(1, 2);
\r
244 t = new Term(4, 5);
\r
250 t = new Term(1, 2);
\r
252 t = new Term(4, 5);
\r
258 int n = sc.isContain(l, hm);
\r
262 TestUtil.equal(n, -1);
\r
265 TestUtil.equal(n, 2);
\r
268 TestUtil.equal(n, 1);
\r
271 TestUtil.equal(n, 0);
\r
277 public static void test_makeScheduleListMonitor() throws TestException {
\r
278 Scheduler sc = null;
\r
279 List<Monitor> list = null;
\r
284 for (int i = 0; i < 2; i++) {
\r
285 sc = new Scheduler();
\r
286 list = new ArrayList<Monitor>();
\r
293 m = new Monitor(1, 2);
\r
294 m.setWeek(n1, true);
\r
295 m.setWeek(n2, true);
\r
298 m = new Monitor(2, 3);
\r
299 m.setWeek(n1 + 1, true);
\r
306 m = new Monitor(0, 1);
\r
307 m.setWeek(n1, true);
\r
308 m.setWeek(n2, true);
\r
311 m = new Monitor(2, 3);
\r
312 m.setWeek(n1, true);
\r
313 m.setWeek(n2, true);
\r
316 m = new Monitor(1, 2);
\r
317 m.setWeek(n1, true);
\r
318 m.setWeek(n2 + 1, true);
\r
322 sc.makeSchedule(list);
\r
324 List<Term>[] lts = sc.getList();
\r
325 List<Term> lt = null;
\r
330 TestUtil.equal(lt.size(), 1);
\r
331 TestUtil.isTrue(lt.get(0).equals(new Term(1, 2)));
\r
333 TestUtil.equal(lt.size(), 1);
\r
334 TestUtil.isTrue(lt.get(0).equals(new Term(1, 2)));
\r
336 TestUtil.equal(lt.size(), 1);
\r
337 TestUtil.isTrue(lt.get(0).equals(new Term(2, 3)));
\r
341 TestUtil.equal(lt.size(), 1);
\r
342 TestUtil.isTrue(lt.get(0).equals(new Term(0, 3)));
\r
345 TestUtil.equal(lt.size(), 2);
\r
346 TestUtil.isTrue(lt.get(0).equals(new Term(0, 1)));
\r
347 TestUtil.isTrue(lt.get(1).equals(new Term(2, 3)));
\r
350 TestUtil.equal(lt.size(), 1);
\r
351 TestUtil.isTrue(lt.get(0).equals(new Term(1, 2)));
\r
357 public static void test_addListTermMonitor() throws TestException {
\r
361 Scheduler sc = new Scheduler();
\r
362 sc.clearSchedule();
\r
363 List<Term>[] ll = sc.getList();
\r
364 List<Term> l = null;
\r
366 for (int i = 0; i < 2; i++) {
\r
370 ll[n].add(new Term(1, 2));
\r
371 m = new Monitor(2, 3);
\r
372 m.setWeek(n, true);
\r
373 m.setWeek(n + 2, true);
\r
377 ll[n].add(new Term(1, 2));
\r
378 m = new Monitor(3, 4);
\r
379 m.setWeek(n, true);
\r
388 TestUtil.equal(l.size(), 1);
\r
389 TestUtil.isTrue(l.get(0).equals(new Term(1, 3)));
\r
391 TestUtil.equal(l.size(), 1);
\r
392 TestUtil.isTrue(l.get(0).equals(new Term(2, 3)));
\r
396 TestUtil.equal(l.size(), 2);
\r
397 TestUtil.isTrue(l.get(0).equals(new Term(1, 2)));
\r
398 TestUtil.isTrue(l.get(1).equals(new Term(3, 4)));
\r
404 public static void test_addListTermTerm() throws TestException {
\r
408 for (int i = 0; i < 3; i++) {
\r
409 List<Term> l = new ArrayList<Term>();
\r
412 t = new Term(1, 3);
\r
414 t1 = new Term(2, 4);
\r
417 t = new Term(1, 2);
\r
419 t = new Term(5, 6);
\r
421 t1 = new Term(3, 4);
\r
424 t = new Term(1, 2);
\r
426 t = new Term(3, 4);
\r
428 t1 = new Term(2, 3);
\r
432 Scheduler sc = new Scheduler();
\r
437 TestUtil.equal(l.size(), 1);
\r
438 TestUtil.isTrue(l.get(0).equals(new Term(1, 4)));
\r
441 TestUtil.equal(l.size(), 3);
\r
442 TestUtil.isTrue(l.get(0).equals(new Term(1, 2)));
\r
443 TestUtil.isTrue(l.get(1).equals(new Term(3, 4)));
\r
444 TestUtil.isTrue(l.get(2).equals(new Term(5, 6)));
\r
447 TestUtil.equal(l.size(), 1);
\r
448 TestUtil.isTrue(l.get(0).equals(new Term(1, 4)));
\r
454 public static void test_isContain() throws TestException {
\r
464 for (int i = 0; i < 3; i++) {
\r
485 sc = new Scheduler();
\r
486 t1 = new Term(from1, to1);
\r
487 t2 = new Term(from2, to2);
\r
488 b = sc.isContain(t1, t2);
\r
491 TestUtil.isTrue(b);
\r
494 TestUtil.isTrue(b);
\r
497 TestUtil.isFalse(b);
\r
503 public static void test_addTermTerm() throws TestException {
\r
515 for (int i = 0; i < 2; i++) {
\r
530 sc = new Scheduler();
\r
531 t1 = new Term(from1, to1);
\r
532 t2 = new Term(from2, to2);
\r
533 t3 = sc.add(t1, t2);
\r
534 from3 = t3.getFrom();
\r
538 TestUtil.equal(from3, 1);
\r
539 TestUtil.equal(to3, 4);
\r
542 TestUtil.equal(from3, 1);
\r
543 TestUtil.equal(to3, 4);
\r