< prev index next > test/jdk/java/util/Collections/AddAll.java
Print this page
/*
! * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
/*
! * Copyright (c) 2003, 2026, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
* @test
* @bug 4822887
* @summary Basic test for Collections.addAll
* @author Josh Bloch
* @key randomness
+ * @library /test/lib
*/
+ import jdk.test.lib.valueclass.VClass;
+ import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
public static void main(String[] args) {
test(new ArrayList<Integer>());
test(new LinkedList<Integer>());
test(new HashSet<Integer>());
test(new LinkedHashSet<Integer>());
}
private static Random rnd = new Random();
static void test(Collection<Integer> c) {
int x = 0;
for (int i = 0; i < N; i++) {
int rangeLen = rnd.nextInt(10);
if (Collections.addAll(c, range(x, x + rangeLen)) !=
! (rangeLen != 0))
throw new RuntimeException("" + rangeLen);
x += rangeLen;
}
if (c instanceof List) {
if (!c.equals(Arrays.asList(range(0, x))))
public static void main(String[] args) {
test(new ArrayList<Integer>());
test(new LinkedList<Integer>());
test(new HashSet<Integer>());
test(new LinkedHashSet<Integer>());
+
+ testTuple(new ArrayList<VClass>());
+ testTuple(new LinkedList<VClass>());
+ testTuple(new HashSet<VClass>());
+ testTuple(new LinkedHashSet<VClass>());
}
private static Random rnd = new Random();
static void test(Collection<Integer> c) {
int x = 0;
for (int i = 0; i < N; i++) {
int rangeLen = rnd.nextInt(10);
if (Collections.addAll(c, range(x, x + rangeLen)) !=
! (rangeLen != 0))
throw new RuntimeException("" + rangeLen);
x += rangeLen;
}
if (c instanceof List) {
if (!c.equals(Arrays.asList(range(0, x))))
Integer[] result = new Integer[to - from];
for (int i = from, j=0; i < to; i++, j++)
result[j] = new Integer(i);
return result;
}
+
+ static void testTuple(Collection<VClass> c) {
+ int x = 0;
+ for (int i = 0; i < N; i++) {
+ int rangeLen = rnd.nextInt(10);
+ if (Collections.addAll(c, rangeTuple(x, x + rangeLen)) !=
+ (rangeLen != 0))
+ throw new RuntimeException("" + rangeLen);
+ x += rangeLen;
+ }
+ if (c instanceof List) {
+ if (!c.equals(Arrays.asList(rangeTuple(0, x))))
+ throw new RuntimeException(x + ": " + c);
+ } else {
+ if (!c.equals(new HashSet<VClass>(Arrays.asList(rangeTuple(0, x)))))
+ throw new RuntimeException(x + ": " + c);
+ }
+ }
+
+ private static VClass[] rangeTuple(int from, int to) {
+ VClass[] result = new VClass[to - from];
+ for (int i = from, j = 0; i < to; i++, j++)
+ result[j] = new VClass(i, new int[] { i });
+ return result;
+ }
}
< prev index next >