0N/A/*
2362N/A * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
0N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
0N/A *
0N/A * This code is free software; you can redistribute it and/or modify it
0N/A * under the terms of the GNU General Public License version 2 only, as
0N/A * published by the Free Software Foundation.
0N/A *
0N/A * This code is distributed in the hope that it will be useful, but WITHOUT
0N/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
0N/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
0N/A * version 2 for more details (a copy is included in the LICENSE file that
0N/A * accompanied this code).
0N/A *
0N/A * You should have received a copy of the GNU General Public License version
0N/A * 2 along with this work; if not, write to the Free Software Foundation,
0N/A * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
0N/A *
2362N/A * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
2362N/A * or visit www.oracle.com if you need additional information or have any
2362N/A * questions.
0N/A */
0N/A
0N/A/*
0N/A * @test
0N/A * @bug 4822887
0N/A * @summary Basic test for Collections.addAll
0N/A * @author Josh Bloch
0N/A */
0N/A
0N/Aimport java.util.*;
0N/A
0N/Apublic class AddAll {
0N/A final static int N = 100;
0N/A public static void main(String args[]) {
0N/A test(new ArrayList<Integer>());
0N/A test(new LinkedList<Integer>());
0N/A test(new HashSet<Integer>());
0N/A test(new LinkedHashSet<Integer>());
0N/A }
0N/A
0N/A private static Random rnd = new Random();
0N/A
0N/A static void test(Collection<Integer> c) {
0N/A int x = 0;
0N/A for (int i = 0; i < N; i++) {
0N/A int rangeLen = rnd.nextInt(10);
0N/A if (Collections.addAll(c, range(x, x + rangeLen)) !=
0N/A (rangeLen != 0))
0N/A throw new RuntimeException("" + rangeLen);
0N/A x += rangeLen;
0N/A }
0N/A if (c instanceof List) {
0N/A if (!c.equals(Arrays.asList(range(0, x))))
0N/A throw new RuntimeException(x +": "+c);
0N/A } else {
0N/A if (!c.equals(new HashSet<Integer>(Arrays.asList(range(0, x)))))
0N/A throw new RuntimeException(x +": "+c);
0N/A }
0N/A }
0N/A
0N/A private static Integer[] range(int from, int to) {
0N/A Integer[] result = new Integer[to - from];
0N/A for (int i = from, j=0; i < to; i++, j++)
0N/A result[j] = new Integer(i);
0N/A return result;
0N/A }
0N/A}