1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 package groovy.lang;
47
48 import java.util.List;
49
50 import junit.framework.TestCase;
51
52 /***
53 * @author James Strachan
54 * @version $Revision: 1.7 $
55 */
56 public class RangeTest extends TestCase {
57
58 public void testSize() {
59 Range r = createRange(0, 10);
60 assertEquals("Size of " + r, 11, r.size());
61 r = createRange(0, 1);
62 assertEquals("Size of " + r, 2, r.size());
63 r = createRange(0, 0);
64 assertEquals("Size of " + r, 1, r.size());
65 }
66
67 public void testProperties() {
68 Range r = createRange(0, 10);
69 assertEquals("from", 0, r.getFrom());
70 assertEquals("to", 10, r.getTo());
71 }
72
73 public void testGet() {
74 Range r = createRange(10, 20);
75 for (int i = 0; i < 10; i++) {
76 Integer value = (Integer) r.get(i);
77 assertEquals("Item at index: " + i, i + 10, value.intValue());
78 }
79 }
80
81 public void testGetOutOfRange() {
82 Range r = createRange(10, 20);
83
84 try {
85 r.get(-1);
86 fail("Should have thrown IndexOut");
87 }
88 catch (IndexOutOfBoundsException e) {
89
90 }
91 try {
92 r.get(11);
93 fail("Should have thrown IndexOut");
94 }
95 catch (IndexOutOfBoundsException e) {
96
97 }
98
99 }
100
101 public void testContains() {
102 Range r = createRange(10, 20);
103
104 assertTrue("contains 11", r.contains(new Integer(11)));
105 assertTrue("contains 10", r.contains(new Integer(10)));
106 assertTrue("contains 19", r.contains(new Integer(19)));
107 assertFalse("contains 9", r.contains(new Integer(9)));
108 assertFalse("contains 21", r.contains(new Integer(21)));
109 assertFalse("contains 100", r.contains(new Integer(100)));
110 assertFalse("contains -1", r.contains(new Integer(-1)));
111 }
112
113 public void testSubList() {
114 Range r = createRange(10, 20);
115
116 List s = r.subList(2, 4);
117
118 Range sr = (Range) s;
119
120 assertEquals("from", 12, sr.getFrom());
121 assertEquals("to", 13, sr.getTo());
122 assertEquals("size", 2, sr.size());
123 }
124
125 public void testHashCodeAndEquals() {
126 Range a = createRange(1, 11);
127 Range b = createRange(1, 11);
128 Range c = createRange(2, 11);
129
130 assertEquals("hashcode", a.hashCode(), b.hashCode());
131 assertTrue("hashcode", a.hashCode() != c.hashCode());
132
133 assertEquals("a and b", a, b);
134 assertFalse("a != c", a.equals(c));
135 }
136
137 public void testIterator() {
138 }
139
140 protected Range createRange(int from, int to) {
141 return new ObjectRange(new Integer(from), new Integer(to));
142 }
143
144 protected void assertEquals(String msg, int expected, Object value) {
145 assertEquals(msg, new Integer(expected), value);
146 }
147
148
149 }