OSDN Git Service

コンパイル警告削除。遅延テストケース疎通
[train-delayed/source.git] / workspace / TrainDelayed / src / com / td / service / SchedulerTest.java
1 package com.td.service;\r
2 \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
7 \r
8 import android.content.Context;\r
9 import android.widget.Toast;\r
10 \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
16 \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
22                 \r
23                 sc.makeSchedule();\r
24                 \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
32                 }\r
33         }\r
34         \r
35         public static void main() {\r
36                 SchedulerTest obj = new SchedulerTest();\r
37 \r
38                 Debug.i(obj, "start");\r
39                 try {\r
40                         test_nextSchedule();\r
41                         test_isContainListTerm();\r
42                         test_makeScheduleListMonitor();\r
43                         test_addListTermMonitor();\r
44                         test_addListTermTerm();\r
45                         test_isContain();\r
46                         test_addTermTerm();\r
47                 } catch (TestException e) {\r
48                         Debug.i(obj, null, e);\r
49                 }\r
50                 Debug.i(obj, "end");\r
51         }\r
52 \r
53         public static void test_nextSchedule() throws TestException{\r
54                 Scheduler sc = null;\r
55                 long now = -1;\r
56                 long next = -1;\r
57                 int n1 = -1;\r
58                 Calendar cal1 = null;\r
59                 Calendar cal2 = null;\r
60                 List<Term>[] list = null;\r
61                 List<Term> l = null;\r
62                 Term t = null;\r
63                 int y = -1;\r
64                 int m = -1;\r
65                 int d = -1;\r
66                 int h = -1;\r
67                 int mi = -1;\r
68                 int y2 = -1;\r
69                 int m2 = -1;\r
70                 int d2 = -1;\r
71                 int h2 = -1;\r
72                 int mi2 = -1;\r
73                 \r
74                 \r
75                 for (int i = 0; i < 5; i++){\r
76                         sc = new Scheduler();\r
77                         Debug.d(sc, "case " + i);\r
78                         \r
79                         sc.clearSchedule();\r
80                         list = sc.getList();\r
81                         \r
82                         switch (i){\r
83                         case 0:\r
84                                 // \8e\9f\82Ì\8e\9e\8aÔ\82ª\91\8dÝ\82·\82é\r
85                                 y = 2011;\r
86                                 m = 7;\r
87                                 d = 3;\r
88                                 h = 10;\r
89                                 mi = 0;\r
90                                 cal1 = DateUtil.getCalendar(y, m, d, h, mi);\r
91                                 now = cal1.getTimeInMillis();\r
92                                 \r
93                                 n1 = DateUtil.getWeek(cal1);\r
94                                 l = list[n1];\r
95                                 t = new Term(DateUtil.getHm(10, 0), DateUtil.getHm(10, 20));\r
96                                 l.add(t);\r
97                                 break;\r
98                         case 1:\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
100                                 y = 2011;\r
101                                 m = 7;\r
102                                 d = 3;\r
103                                 h = 10;\r
104                                 mi = 0;\r
105                                 cal1 = DateUtil.getCalendar(y, m, d, h, mi);\r
106                                 now = cal1.getTimeInMillis();\r
107 \r
108                                 n1 = DateUtil.getWeek(cal1);\r
109                                 l = list[n1];\r
110                                 t = new Term(DateUtil.getHm(10, 0), DateUtil.getHm(10, 5));\r
111                                 l.add(t);\r
112                                 break;\r
113                         case 2:\r
114                                 // \93¯\82\93ú\82Ì\8e\9f\82ÌTerm\r
115                                 y = 2011;\r
116                                 m = 7;\r
117                                 d = 4;\r
118                                 h = 22;\r
119                                 mi = 11;\r
120                                 cal1 = DateUtil.getCalendar(y, m, d, h, mi);\r
121                                 now = cal1.getTimeInMillis();\r
122                                 \r
123                                 n1 = DateUtil.getWeek(cal1);\r
124                                 l = list[n1];\r
125                                 t = new Term(DateUtil.getHm(22, 10), DateUtil.getHm(22, 20));\r
126                                 l.add(t);\r
127                                 t = new Term(DateUtil.getHm(23, 0), DateUtil.getHm(24, 0));\r
128                                 l.add(t);\r
129                                 break;\r
130                         case 3:\r
131                                 // \97j\93ú\82ð\82Ü\82½\82¢\82Å\81A\8e\9f\82ÌTerm\81B\8e\9f\82Ì\94N\r
132                                 y = 2011;\r
133                                 m = 12;\r
134                                 d = 31;\r
135                                 h = 23;\r
136                                 mi = 30;\r
137                                 cal1 = DateUtil.getCalendar(y, m, d, h, mi);\r
138                                 now = cal1.getTimeInMillis();\r
139                                 \r
140                                 n1 = DateUtil.getWeek(cal1);\r
141                                 n1 = (n1 + 1) % DateUtil.WEEK;\r
142                                 l = list[n1];\r
143                                 t = new Term(DateUtil.getHm(1, 23), DateUtil.getHm(23, 35));\r
144                                 l.add(t);\r
145                                 break;\r
146                         case 4:\r
147                                 // \93ú\82ð\82Ü\82½\82¢\82Å\8e\9f\82ÌTerm\82ª\91\8dÝ\82·\82é\r
148                                 y = 2011;\r
149                                 m = 1;\r
150                                 d = 1;\r
151                                 h = 23;\r
152                                 mi = 59;\r
153                                 cal1 = DateUtil.getCalendar(y, m, d, h, mi);\r
154                                 now = cal1.getTimeInMillis();\r
155                                 \r
156                                 n1 = DateUtil.getWeek(cal1);\r
157                                 n1 = (n1 + 1) % DateUtil.WEEK;\r
158                                 l = list[n1];\r
159                                 t = new Term(DateUtil.getHm(0, 0), DateUtil.getHm(23, 59));\r
160                                 l.add(t);\r
161                                 break;\r
162                         }\r
163                         \r
164                         next = sc.nextSchedule(now, DateUtil.LEN);\r
165                         if (next < 0){\r
166                                 throw new TestException();\r
167                         }\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
175                         \r
176                         switch (i){\r
177                         case 0:\r
178                                 mi += DateUtil.LEN;\r
179                                 break;\r
180                         case 1:\r
181                                 d += DateUtil.WEEK;\r
182                                 mi = 0;\r
183                                 break;\r
184                         case 2:\r
185                                 h = 23;\r
186                                 mi = 0;\r
187                                 break;\r
188                         case 3:\r
189                                 y = 2012;\r
190                                 m = 1;\r
191                                 d = 1;\r
192                                 h = 1;\r
193                                 mi = 23;\r
194                                 break;\r
195                         case 4:\r
196                                 y = 2011;\r
197                                 m = 1;\r
198                                 d = 2;\r
199                                 h = 0;\r
200                                 mi = 9;\r
201                                 break;\r
202                         }\r
203                         \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
209                 }\r
210         }\r
211         \r
212         public static void test_isContainListTerm() throws TestException {\r
213                 Scheduler sc = null;\r
214                 List<Term> l = null;\r
215                 Term t = null;\r
216                 int hm = -1;\r
217 \r
218                 for (int i = 0; i < 4; i++) {\r
219                         sc = new Scheduler();\r
220                         l = new ArrayList<Term>();\r
221 \r
222                         switch (i){\r
223                         case 0:\r
224                                 t = new Term(1, 2);\r
225                                 l.add(t);\r
226                                 t = new Term(3, 4);\r
227                                 l.add(t);\r
228                                 t = new Term(5, 6);\r
229                                 l.add(t);\r
230         \r
231                                 hm = 7;\r
232                                 break;\r
233                         case 1:\r
234                                 t = new Term(1, 2);\r
235                                 l.add(t);\r
236                                 t = new Term(4, 5);\r
237                                 l.add(t);\r
238                                 \r
239                                 hm = 3;\r
240                                 break;\r
241                         case 2:\r
242                                 t = new Term(1, 2);\r
243                                 l.add(t);\r
244                                 t = new Term(4, 5);\r
245                                 l.add(t);\r
246                                 \r
247                                 hm = 0;\r
248                                 break;\r
249                         case 3:\r
250                                 t = new Term(1, 2);\r
251                                 l.add(t);\r
252                                 t = new Term(4, 5);\r
253                                 l.add(t);\r
254                                 \r
255                                 hm = 4;\r
256                                 break;\r
257                         }\r
258                         int n = sc.isContain(l, hm);\r
259 \r
260                         switch (i){\r
261                         case 0:\r
262                                 TestUtil.equal(n, -1);\r
263                                 break;\r
264                         case 1:\r
265                                 TestUtil.equal(n, 2);\r
266                                 break;\r
267                         case 2:\r
268                                 TestUtil.equal(n, 1);\r
269                                 break;\r
270                         case 3:\r
271                                 TestUtil.equal(n, 0);\r
272                                 break;\r
273                         }\r
274                 }\r
275         }\r
276 \r
277         public static void test_makeScheduleListMonitor() throws TestException {\r
278                 Scheduler sc = null;\r
279                 List<Monitor> list = null;\r
280                 Monitor m = null;\r
281                 int n1 = -1;\r
282                 int n2 = -1;\r
283 \r
284                 for (int i = 0; i < 2; i++) {\r
285                         sc = new Scheduler();\r
286                         list = new ArrayList<Monitor>();\r
287 \r
288                         switch (i) {\r
289                         case 0:\r
290                                 n1 = 2;\r
291                                 n2 = 6;\r
292 \r
293                                 m = new Monitor(1, 2);\r
294                                 m.setWeek(n1, true);\r
295                                 m.setWeek(n2, true);\r
296                                 list.add(m);\r
297 \r
298                                 m = new Monitor(2, 3);\r
299                                 m.setWeek(n1 + 1, true);\r
300                                 list.add(m);\r
301                                 break;\r
302                         case 1:\r
303                                 n1 = 0;\r
304                                 n2 = 1;\r
305 \r
306                                 m = new Monitor(0, 1);\r
307                                 m.setWeek(n1, true);\r
308                                 m.setWeek(n2, true);\r
309                                 list.add(m);\r
310 \r
311                                 m = new Monitor(2, 3);\r
312                                 m.setWeek(n1, true);\r
313                                 m.setWeek(n2, true);\r
314                                 list.add(m);\r
315 \r
316                                 m = new Monitor(1, 2);\r
317                                 m.setWeek(n1, true);\r
318                                 m.setWeek(n2 + 1, true);\r
319                                 list.add(m);\r
320                                 break;\r
321                         }\r
322                         sc.makeSchedule(list);\r
323 \r
324                         List<Term>[] lts = sc.getList();\r
325                         List<Term> lt = null;\r
326 \r
327                         switch (i) {\r
328                         case 0:\r
329                                 lt = lts[n1];\r
330                                 TestUtil.equal(lt.size(), 1);\r
331                                 TestUtil.isTrue(lt.get(0).equals(new Term(1, 2)));\r
332                                 lt = lts[n2];\r
333                                 TestUtil.equal(lt.size(), 1);\r
334                                 TestUtil.isTrue(lt.get(0).equals(new Term(1, 2)));\r
335                                 lt = lts[n1 + 1];\r
336                                 TestUtil.equal(lt.size(), 1);\r
337                                 TestUtil.isTrue(lt.get(0).equals(new Term(2, 3)));\r
338                                 break;\r
339                         case 1:\r
340                                 lt = lts[n1];\r
341                                 TestUtil.equal(lt.size(), 1);\r
342                                 TestUtil.isTrue(lt.get(0).equals(new Term(0, 3)));\r
343 \r
344                                 lt = lts[n2];\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
348 \r
349                                 lt = lts[n2 + 1];\r
350                                 TestUtil.equal(lt.size(), 1);\r
351                                 TestUtil.isTrue(lt.get(0).equals(new Term(1, 2)));\r
352                                 break;\r
353                         }\r
354                 }\r
355         }\r
356 \r
357         public static void test_addListTermMonitor() throws TestException {\r
358                 int n = -1;\r
359                 Monitor m = null;\r
360 \r
361                 Scheduler sc = new Scheduler();\r
362                 sc.clearSchedule();\r
363                 List<Term>[] ll = sc.getList();\r
364                 List<Term> l = null;\r
365 \r
366                 for (int i = 0; i < 2; i++) {\r
367                         switch (i) {\r
368                         case 0:\r
369                                 n = 3;\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
374                                 break;\r
375                         case 1:\r
376                                 n = 0;\r
377                                 ll[n].add(new Term(1, 2));\r
378                                 m = new Monitor(3, 4);\r
379                                 m.setWeek(n, true);\r
380                                 break;\r
381                         }\r
382 \r
383                         sc.add(ll, m);\r
384 \r
385                         switch (i) {\r
386                         case 0:\r
387                                 l = ll[n];\r
388                                 TestUtil.equal(l.size(), 1);\r
389                                 TestUtil.isTrue(l.get(0).equals(new Term(1, 3)));\r
390                                 l = ll[n + 2];\r
391                                 TestUtil.equal(l.size(), 1);\r
392                                 TestUtil.isTrue(l.get(0).equals(new Term(2, 3)));\r
393                                 break;\r
394                         case 1:\r
395                                 l = ll[n];\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
399                                 break;\r
400                         }\r
401                 }\r
402         }\r
403 \r
404         public static void test_addListTermTerm() throws TestException {\r
405                 Term t = null;\r
406                 Term t1 = null;\r
407 \r
408                 for (int i = 0; i < 3; i++) {\r
409                         List<Term> l = new ArrayList<Term>();\r
410                         switch (i) {\r
411                         case 0:\r
412                                 t = new Term(1, 3);\r
413                                 l.add(t);\r
414                                 t1 = new Term(2, 4);\r
415                                 break;\r
416                         case 1:\r
417                                 t = new Term(1, 2);\r
418                                 l.add(t);\r
419                                 t = new Term(5, 6);\r
420                                 l.add(t);\r
421                                 t1 = new Term(3, 4);\r
422                                 break;\r
423                         case 2:\r
424                                 t = new Term(1, 2);\r
425                                 l.add(t);\r
426                                 t = new Term(3, 4);\r
427                                 l.add(t);\r
428                                 t1 = new Term(2, 3);\r
429                                 break;\r
430                         }\r
431 \r
432                         Scheduler sc = new Scheduler();\r
433                         sc.add(l, t1);\r
434 \r
435                         switch (i) {\r
436                         case 0:\r
437                                 TestUtil.equal(l.size(), 1);\r
438                                 TestUtil.isTrue(l.get(0).equals(new Term(1, 4)));\r
439                                 break;\r
440                         case 1:\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
445                                 break;\r
446                         case 2:\r
447                                 TestUtil.equal(l.size(), 1);\r
448                                 TestUtil.isTrue(l.get(0).equals(new Term(1, 4)));\r
449                                 break;\r
450                         }\r
451                 }\r
452         }\r
453 \r
454         public static void test_isContain() throws TestException {\r
455                 Term t1;\r
456                 Term t2;\r
457                 boolean b;\r
458                 int from1 = -1;\r
459                 int to1 = -1;\r
460                 int from2 = -1;\r
461                 int to2 = -1;\r
462                 Scheduler sc;\r
463 \r
464                 for (int i = 0; i < 3; i++) {\r
465                         switch (i) {\r
466                         case 0:\r
467                                 from1 = 1;\r
468                                 to1 = 3;\r
469                                 from2 = 2;\r
470                                 to2 = 4;\r
471                                 break;\r
472                         case 1:\r
473                                 from1 = 1;\r
474                                 to1 = 4;\r
475                                 from2 = 2;\r
476                                 to2 = 3;\r
477                                 break;\r
478                         case 2:\r
479                                 from1 = 1;\r
480                                 to1 = 2;\r
481                                 from2 = 3;\r
482                                 to2 = 4;\r
483                                 break;\r
484                         }\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
489                         switch (i) {\r
490                         case 0:\r
491                                 TestUtil.isTrue(b);\r
492                                 break;\r
493                         case 1:\r
494                                 TestUtil.isTrue(b);\r
495                                 break;\r
496                         case 2:\r
497                                 TestUtil.isFalse(b);\r
498                                 break;\r
499                         }\r
500                 }\r
501         }\r
502 \r
503         public static void test_addTermTerm() throws TestException {\r
504                 Term t1;\r
505                 Term t2;\r
506                 Term t3;\r
507                 int from1 = -1;\r
508                 int to1 = -1;\r
509                 int from2 = -1;\r
510                 int to2 = -1;\r
511                 int from3;\r
512                 int to3;\r
513                 Scheduler sc;\r
514 \r
515                 for (int i = 0; i < 2; i++) {\r
516                         switch (i) {\r
517                         case 0:\r
518                                 from1 = 1;\r
519                                 to1 = 3;\r
520                                 from2 = 2;\r
521                                 to2 = 4;\r
522                                 break;\r
523                         case 1:\r
524                                 from1 = 1;\r
525                                 to1 = 4;\r
526                                 from2 = 2;\r
527                                 to2 = 3;\r
528                                 break;\r
529                         }\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
535                         to3 = t3.getTo();\r
536                         switch (i) {\r
537                         case 0:\r
538                                 TestUtil.equal(from3, 1);\r
539                                 TestUtil.equal(to3, 4);\r
540                                 break;\r
541                         case 1:\r
542                                 TestUtil.equal(from3, 1);\r
543                                 TestUtil.equal(to3, 4);\r
544                                 break;\r
545                         }\r
546                 }\r
547         }\r
548 }\r