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.5 $
55 */
56 public class IntRangeTest extends TestCase {
57
58 public void testSize() {
59 IntRange 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 IntRange r = createRange(0, 10);
69 assertEquals("from", 0, r.getFromInt());
70 assertEquals("to", 10, r.getToInt());
71 }
72
73 public void testGet() {
74 IntRange 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 IntRange 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 IntRange 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 assertTrue("contains 20", r.contains(new Integer(20)));
108 assertFalse("contains 9", r.contains(new Integer(9)));
109 assertFalse("contains 21", r.contains(new Integer(21)));
110 assertFalse("contains 100", r.contains(new Integer(100)));
111 assertFalse("contains -1", r.contains(new Integer(-1)));
112 }
113
114 public void testSubList() {
115 IntRange r = createRange(10, 20);
116
117 List s = r.subList(2, 4);
118
119 IntRange sr = (IntRange) s;
120
121 assertEquals("from", 12, sr.getFromInt());
122 assertEquals("to", 13, sr.getToInt());
123 assertEquals("size", 2, sr.size());
124 }
125
126 public void testHashCodeAndEquals() {
127 IntRange a = createRange(1, 11);
128 IntRange b = createRange(1, 11);
129 IntRange c = createRange(2, 11);
130
131 assertEquals("hashcode", a.hashCode(), b.hashCode());
132 assertTrue("hashcode", a.hashCode() != c.hashCode());
133
134 assertEquals("a and b", a, b);
135 assertFalse("a != c", a.equals(c));
136 }
137
138 public void testIterator() {
139 }
140
141 protected IntRange createRange(int from, int to) {
142 return new IntRange(from, to);
143 }
144
145 protected void assertEquals(String msg, int expected, Object value) {
146 assertEquals(msg, new Integer(expected), value);
147 }
148
149
150 }