23 |
|
|
24 |
|
/* |
25 |
|
* @test |
26 |
< |
* @bug 4904067 5023830 7129185 |
26 |
> |
* @bug 4904067 5023830 7129185 8072015 |
27 |
|
* @summary Unit test for Collections.checkedMap |
28 |
|
* @author Josh Bloch |
29 |
|
* @run testng CheckedMapBash |
36 |
|
import org.testng.annotations.DataProvider; |
37 |
|
|
38 |
|
import static org.testng.Assert.fail; |
39 |
– |
import static org.testng.Assert.assertTrue; |
39 |
|
|
40 |
|
public class CheckedMapBash { |
41 |
|
static final Random rnd = new Random(); |
52 |
|
Object newHead; |
53 |
|
do { |
54 |
|
newHead = new Integer(rnd.nextInt()); |
55 |
< |
} while (m.containsKey(newHead)); |
55 |
> |
} while (m.containsKey(newHead) || newHead.equals(nil)); |
56 |
|
m.put(newHead, head); |
57 |
|
head = newHead; |
58 |
|
} |
98 |
|
} |
99 |
|
|
100 |
|
@Test(dataProvider = "Supplier<Map<Integer,Integer>>") |
101 |
< |
public static void testCheckeMap2(String description, Supplier<Map<Integer,Integer>> supplier) { |
101 |
> |
public static void testCheckedMap2(String description, Supplier<Map<Integer,Integer>> supplier) { |
102 |
|
Map m = supplier.get(); |
103 |
|
for (int i=0; i<mapSize; i++) |
104 |
|
if (m.put(new Integer(i), new Integer(2*i)) != null) |
105 |
< |
fail("put returns a non-null value erroenously."); |
105 |
> |
fail("put returns a non-null value erroneously."); |
106 |
|
for (int i=0; i<2*mapSize; i++) |
107 |
|
if (m.containsValue(new Integer(i)) != (i%2==0)) |
108 |
|
fail("contains value "+i); |
109 |
|
if (m.put(nil, nil) == null) |
110 |
< |
fail("put returns a null value erroenously."); |
110 |
> |
fail("put returns a null value erroneously."); |
111 |
|
Map m2 = supplier.get(); m2.putAll(m); |
112 |
|
if (!m.equals(m2)) |
113 |
|
fail("Clone not equal to original. (1)"); |
146 |
|
ArrayList<Object[]> iters = new ArrayList<>(makeCheckedMaps()); |
147 |
|
iters.ensureCapacity(numItr * iters.size()); |
148 |
|
for (int each=1; each < numItr; each++) { |
149 |
< |
iters.addAll( makeCheckedMaps()); |
149 |
> |
iters.addAll(makeCheckedMaps()); |
150 |
|
} |
151 |
|
return iters.iterator(); |
152 |
|
} |
157 |
|
} |
158 |
|
|
159 |
|
public static Collection<Object[]> makeCheckedMaps() { |
160 |
< |
return Arrays.asList( |
161 |
< |
new Object[]{"Collections.checkedMap(HashMap)", |
162 |
< |
(Supplier) () -> {return Collections.checkedMap(new HashMap(), Integer.class, Integer.class);}}, |
163 |
< |
new Object[]{"Collections.checkedMap(TreeMap(reverseOrder))", |
164 |
< |
(Supplier) () -> {return Collections.checkedMap(new TreeMap(Collections.reverseOrder()), Integer.class, Integer.class);}}, |
165 |
< |
new Object[]{"Collections.checkedMap(TreeMap.descendingMap())", |
166 |
< |
(Supplier) () -> {return Collections.checkedMap(new TreeMap().descendingMap(), Integer.class, Integer.class);}}, |
167 |
< |
new Object[]{"Collections.checkedNavigableMap(TreeMap)", |
168 |
< |
(Supplier) () -> {return Collections.checkedNavigableMap(new TreeMap(), Integer.class, Integer.class);}}, |
169 |
< |
new Object[]{"Collections.checkedNavigableMap(TreeMap(reverseOrder))", |
170 |
< |
(Supplier) () -> {return Collections.checkedNavigableMap(new TreeMap(Collections.reverseOrder()), Integer.class, Integer.class);}}, |
171 |
< |
new Object[]{"Collections.checkedNavigableMap(TreeMap.descendingMap())", |
172 |
< |
(Supplier) () -> {return Collections.checkedNavigableMap(new TreeMap().descendingMap(), Integer.class, Integer.class);}} |
173 |
< |
); |
160 |
> |
Object[][] params = { |
161 |
> |
{"Collections.checkedMap(HashMap)", |
162 |
> |
(Supplier) () -> Collections.checkedMap(new HashMap(), Integer.class, Integer.class)}, |
163 |
> |
{"Collections.checkedMap(TreeMap(reverseOrder))", |
164 |
> |
(Supplier) () -> Collections.checkedMap(new TreeMap(Collections.reverseOrder()), Integer.class, Integer.class)}, |
165 |
> |
{"Collections.checkedMap(TreeMap.descendingMap())", |
166 |
> |
(Supplier) () -> Collections.checkedMap(new TreeMap().descendingMap(), Integer.class, Integer.class)}, |
167 |
> |
{"Collections.checkedNavigableMap(TreeMap)", |
168 |
> |
(Supplier) () -> Collections.checkedNavigableMap(new TreeMap(), Integer.class, Integer.class)}, |
169 |
> |
{"Collections.checkedNavigableMap(TreeMap(reverseOrder))", |
170 |
> |
(Supplier) () -> Collections.checkedNavigableMap(new TreeMap(Collections.reverseOrder()), Integer.class, Integer.class)}, |
171 |
> |
{"Collections.checkedNavigableMap(TreeMap.descendingMap())", |
172 |
> |
(Supplier) () -> Collections.checkedNavigableMap(new TreeMap().descendingMap(), Integer.class, Integer.class)}, |
173 |
> |
}; |
174 |
> |
return Arrays.asList(params); |
175 |
|
} |
176 |
|
} |