public class DayTest extends TestCase
1: import junit.framework.*;
3: /**
4: A class to test the Day class with JUnit.
5: */
6: public class DayTest extends TestCase
7: {
8: /**
9: This test tests the addDays method with positive
10: parameters.
11: */
12: public void testAdd()
13: {
14: for (int i = 1; i <= MAX_DAYS; i = i * INCREMENT)
15: {
16: Day d1 = new Day(1970, 1, 1);
17: Day d2 = d1.addDays(i);
18: assert d2.daysFrom(d1) == i;
19: }
20: }
22: /**
23: This test tests the addDays method with negative
24: parameters.
25: */
26: public void testAddNegative()
27: {
28: for (int i = 1; i <= MAX_DAYS; i = i * INCREMENT)
29: {
30: Day d1 = new Day(1970, 1, 1);
31: Day d2 = d1.addDays(-i);
32: assert d1.daysFrom(d2) == i;
33: }
34: }
36: /**
37: This test tests the daysFrom method.
38: */
39: public void testDaysFrom()
40: {
41: Day d1 = new Day(1970, 1, 1);
42: Day d2 = new Day(2001, 1, 1);
43: int n = d1.daysFrom(d2);
44: Day d3 = d2.addDays(n);
45: assert d1.getYear() == d3.getYear();
46: assert d1.getMonth() == d3.getMonth();
47: assert d1.getDate() == d3.getDate();
48: }
50: /**
51: This test tests arithmetic around the Gregorian
52: calendar change.
53: */
54: public void testGregorianBoundary()
55: {
56: Day d1 = new Day(1580, 1, 1);
57: Day d2 = d1.addDays(MAX_DAYS);
58: Day d3 = d2.addDays(-MAX_DAYS);
59: assert d3.daysFrom(d1) == 0;
60: }
62: private static final int MAX_DAYS = 10000;
63: private static final int INCREMENT = 10;
64: }